/*国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第
四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币..;这种工资发放模式会一直这样延续下
去:当连续N天每天收到N枚金币后,骑士会在之后的连续N + 1天里,每天收到N + 1枚金币。
请计算在前K天里,骑士一共获得了多少金币。*/
#include<stdio.h>
int main()
{
int k = 0;//表示发金币的天数
while (scanf("%d", &k) != EOF)
{
int total = 0;//收到金币的总数
int cnt = 0;//计数器 //统计发了多少天 金币
for (int i = 1; i < 10000; i++)//外层大循环 控制发放金币数
{
for (int j = 0; j < i; j++, cnt++)//里层小循环 控制发放特定金币数的天数
//即 一枚金币 发放 1 天, 二 枚金币发放 2 天......
{
if (cnt == k)//发金币的天数 达到了 k 天
{
goto here;//goto 语句 适用于 结束多层循环
}
total = total + i;
}
}
here:
printf("%d\n", total);
}
return 0;
}