分享一下个人思路:如果拿1金币,可以拿1天。2金币拿两天,n金币拿n天
也就是说:我们要拿n金币,从当前的天数开始循环n次,每次拿n,每次拿完之后天数+1;
#include <stdio.h>
int main()
{
int day=0;int money=0;int k=1;//每次拿的金币数量
scanf("%d",&day);
for(int i=1;i<=day;)//这里不设置天数的加减,而在拿金币的时候进行天数加减
{
for(int j=0;j<k;j++)//拿n次金币,每次拿n枚
{
if (i == day)
{
money += k;
i++;
break;
}
money+=k;//每次拿的
i++;//拿完一次后天数+1
}
k++;//拿完n次后,金币+1
}
printf("%d",money);
return 0;
}
大家注意到我们有这样一个条件
if (i == day)
{
money += k;
i++;
break;
}
也就是说此时天数已经到了,但是我们之前的循环是n枚金币拿n次,循环还没有结束,我们就要手动去结束他(不要忘了最后一天也是有金币的)