主要是考察循环的活用吧,出自洛谷的入门循环题单,个人觉得以下方法是比较容易想到也较好实现的,具体看代码吧+_+
/*国王将金币作为工资,发放给忠诚的骑士。
第一天,骑士收到一枚金币;
之后两天(第二天和第三天),每天收到两枚金币;
之后三天(第四、五、六天),每天收到三枚金币;
之后四天(第七、八、九、十天),每天收到四枚金币……;
这种工资发放模式会一直这样延续下去:
当连续 nn 天每天收到 nn 枚金币后,骑士会在之后的连续 n+1n+1 天里,每天收到 n+1n+1 枚金币。
请计算在前 kk 天里,骑士一共获得了多少金币。*/
#include<stdio.h>
int main()
{
int i,j,t,day,sum,flag;
day = 0; //天数
sum = 0; //金币总数
flag = 0; //标记数组
scanf("%d",&t);
for(i=1;;i++) //无条件一直执行
{
for(j = 1;j <= i;j++) //第几天就执行几次
{
if(day >= t) //当天数大于等于所求天数
{
printf("%d\n",sum); //将金币数输出
flag = 1; //标记变量置1
break; //退出第二层循环
}
else
{
sum += i; //求金币数
day++; //天数
}
}
if(flag) //标记变量为真,证明已找到值,退出外循环
break;
}
return 0;
}