/*国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第 四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币..;这种工资发放模式会一直这样延续下 去:当连续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; }