【編程題】股神


  題目鏈接:股神

  題目描述

  有股神嗎?

  有,小賽就是!

  經過嚴密的計算,小賽買了一支股票,他知道從他買股票的那天開始,股票會有以下變化:第一天不變,以后漲一天,跌一天,漲兩天,跌一天,漲三天,跌一天...依此類推。

  為方便計算,假設每次漲和跌皆為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 }

  感覺這個題目的邏輯好難啊,浪費了好長時間,是我鑽死胡同了么。求更好的解法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM