買了一支股票,他知道從他買股票的那天開始,股票會有如下變化:第一天不變,之後漲一天,跌一天,漲兩天,跌一天,漲三天,跌一天...依此類推。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
題目答案均來自某網站,這裏不具體透露,避免打廣告嫌疑。