题目描述
有股神吗?
有,小赛就是!
经过严密的计算,小赛买了一支股票,他知道从他买股票的那天开始,股票会有以下变化:第一天不变,以后涨一天,跌一天,涨两天,跌一天,涨三天,跌一天…依此类推。
为方便计算,假设每次涨和跌皆为1,股票初始单价也为1,请计算买股票的第n天每股股票值多少钱?
解答思路:
首先要根据题目找出数学上的规律,我们集中看-1的情况(跌的时候),发现出现位置有规律。3,6,10,15,每次差值都会在上一次的差值上加1,因此我们只要在每次跌的那天-1,其他任意天都+1就行了。
AC代码
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
int t=3,a=3,sum=0;
for(int i=1;i<=n;i++){
if(i==t){
sum--;
t=t+a;
a++;
}else{
sum++;
}
}
System.out.println(sum);
}
}
}
原题链接:
https://exercise.acmcoder.com/online/online_judge_ques?ques_id=1664&konwledgeId=134
Tips:
做这种题,一开始没有思路的时候,我们可以尝试先把题目描述的过程简要用数字罗列一遍,然后再进行分析就会很清楚了。
比如罗列出每天的股票涨跌情况:
天数 | 涨跌 |
---|---|
1 | +1 |
2 | +1 |
3 | -1 |
4 | +1 |
5 | +1 |
6 | -1 |
7 | +1 |
8 | +1 |
9 | +1 |
10 | -1 |
11 | +1 |
这样我们就很容易找出规律了!