題目鏈接:股神
題目描述
有股神嗎?
有,小賽就是!
經過嚴密的計算,小賽買了一支股票,他知道從他買股票的那天開始,股票會有以下變化:第一天不變,以后漲一天,跌一天,漲兩天,跌一天,漲三天,跌一天...依此類推。
為方便計算,假設每次漲和跌皆為1,股票初始單價也為1,請計算買股票的第n天每股股票值多少錢?

附上本機沒問題,但是提交不通過的Java代碼。。。。求指教
編譯通過了。。。。原來是我用的類名不對,平台要求統一用Main,而我的是Test。。。
1 import java.util.Scanner; 2 3 class Test{ 4 public static void main(String[] args){ 5 Scanner cin = new Scanner(System.in); 6 while(cin.hasNextInt()){ 7 int day = cin.nextInt(); 8 int money = computeMoney(day); 9 System.out.println(money); 10 } 11 } 12 13 private static int computeMoney(int day){ 14 int money = 1; 15 int part = 3; 16 int i = 3; 17 if(day == 1) 18 return 1; 19 else if(day == 2) 20 return 2; 21 else{ 22 while(i <= day){ //這一部分是以每個跌價為切分點循環,這么多天內有多少天跌就循環幾次,當然我是從第3天開始的 23 money += (part-3); 24 if(i == day) 25 break; //這里處理特殊情況,如果進入循環的切分點,正好等於輸入的天數就跳出循環,此時的money是正確的,確保i=day不進入下面的if語句 26 i += part; 27 part++; 28 } 29 if(i > day){ //這一部分表示不能進入下一次循環,又恰巧不是下跌的天數,就得從上次下跌時的價格加上差價 30 i = i-part+1; 31 money += day-i; 32 } 33 return money; 34 } 35 } 36 }
感覺這個題目的邏輯好難啊,浪費了好長時間,是我鑽死胡同了么。求更好的解法。
