题目描述
有股神吗?
有,小赛就是!
经过严密的计算,小赛买了一支股票,他知道从他买股票的那天开始,股票会有以下变化:第一天不变,以后涨一天,跌一天,涨两天,跌一天,涨三天,跌一天…依此类推。
为方便计算,假设每次涨和跌皆为1,股票初始单价也为1,请计算买股票的第n天每股股票值多少钱?
主要思路:
笨方法就是不断地更新变量,计算当前上涨的天数如果达到应该上涨的天数,就跌一天,然后继续下次上涨。
代码中写了注释,可以看一下。
import java.util.Scanner;
/**
* 股神
* @author ilovewl99
*/
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
//统计从上一次跌了之后上涨的天数
int countCurrentGrowDays = 0;
//统计从上一次跌了之后需要上涨的天数
int nextToatalGrowDays = 1;
int money = 1;
//这个标志位代表当前是涨还是跌
boolean grow = true;
//第一天是不变的,所以我们从第二天开始
for(int i = 2; i <= n ;i++){
if(nextToatalGrowDays > countCurrentGrowDays){
grow = true;
}else{
grow = false;
}
if(grow){
money ++;
countCurrentGrowDays ++;
}else{
money --;
//跌了一次之后下次需要上涨的天数就得加一天
nextToatalGrowDays ++;
//清零,重新统计从这次跌了之后上涨的天数
countCurrentGrowDays = 0;
}
}
System.out.println(money);
}
}