基礎編程-java之股神

買了一支股票,他知道從他買股票的那天開始,股票會有如下變化:第一天不變,之後漲一天,跌一天,漲兩天,跌一天,漲三天,跌一天...依此類推。java

爲方便計算,假設每次漲和跌皆爲1,股票初始單價也爲1,請計算買股票的第n天每股股票值多少錢?算法

 

這是本人在某網站看到的簡單編程題。大夥們能夠嘗試看看!編程

我的認爲多作些算法編程題,有利於提升本身的編程水平,偏向機器思惟網站

 

 

 

下面是腦殘博主的暴力式答題:get

public class Demo1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNextInt()){
int a=sc.nextInt();
System.out.println(getPrice(a));
}
}
public static int getPrice(int n){
double n1=n;
double m;
m=Math.sqrt(((2*n)+0.25));//這裏是博主用筆在本子上推算出的公式
int p=(int)Math.floor((m-0.5));//向下取整就能得出股價下跌的天數
int sum=(int)(n1-(2*p)+2);
return sum;
}
}class

 

 

下面爲你們附上正確解答,博主看到以後。。。。。要哭暈在廁所了import

import java.util.Scanner;變量


public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Integer n = null;
while((n = in.nextInt())!=null){
int price = 1;
int i=2;int j=3;
for(int m=1;m<n;m++){
if(m==i){
price--;
i=i+j;//明明能夠直接找到跌的天數的規律,用一個變量來存儲就能夠了,簡單吧
j++;
}
else{
price++;}
}
System.out.println(price);

}
}

}im

 

第一次發文,謝謝!next

題目答案均來自某網站,這裏不具體透露,避免打廣告嫌疑。

相關文章
相關標籤/搜索