题目描述
有股神吗?
有,小赛就是!
经过严密的计算,小赛买了一支股票,他知道从他买股票的那天开始,股票会有以下变化:第一天不变,以后涨一天,跌一天,涨两天,跌一天,涨三天,跌一天...依此类推。
为方便计算,假设每次涨和跌皆为1,股票初始单价也为1,请计算买股票的第n天每股股票值多少钱?
解法:
/**************************************
@time 2016/09/07
@place DHU.242
************************************/
#include<cstdio>
#include<cmath>
int main()
{
int day;
while(scanf("%d",&day)!=EOF)
{
int p=(1+sqrt(1+8*(day-1)))/2-1;//得到这天的周期数
int pbn=((p-1)*(p-2)/2)+2;//得到中这天所在周期的第一天的钱数
int pbi=(2+p)*(p-1)/2+2;//得到中这天所在周期的第一天s是哪天
if(day==1)
{
printf("1\n");
continue;
}
if(day==2)
{
printf("2\n");
continue;
}
int menony=pbn;
int tmp=day-pbi;
menony+=tmp;
if(tmp==p) menony-=2;//一个周期的最后一天要减去一
printf("%d\n",menony);
}
}