国王用金币奖励他忠诚的侍从,第一天侍从工作结束后,国王奖励了他一个金币; 接着的两天侍从工作中(第二天,第三天)的每一天,国王奖励了他两个金币;接着的三天 侍从工作中(第四、五、六天)的每一天,国王奖励了他三个金币; 要求在给定的天数时,程序能够统计国王共奖励了侍从多少个金币。

/*国王用金币奖励他忠诚的侍从,第一天侍从工作结束后,国王奖励了他一个金币;
接着的两天侍从工作中(第二天,第三天)的每一天,国王奖励了他两个金币;接着的三天
侍从工作中(第四、五、六天)的每一天,国王奖励了他三个金币;接着的四天侍从工作中(
第七、八、九、十天)的每一天,国王奖励了他四个金币。这种奖励的模式将是固定不变的,
即在N天侍从工作中的每一天,国王将奖励他N个金币;接着的N+1的侍从工作中的每一天,国王
将奖励他N+1个金币。 
要求在给定的天数时,程序能够统计国王共奖励了侍从多少个金币。 
*/
#include<stdio.h>
#include<math.h>
int main()
{
    int t,sum=0,i,j,n=0;
    printf("请输入天数:");
    scanf("%d",&i);//共i天
    for(t=1;;t++) 
    {
        n=n+t;//第t轮的天数和 
        if(n+(t+1)>=i)
            break;
    }
    n=i-n;//t轮后多余的未满一轮的天数
    for(j=1;j<=t;j++)
        sum=sum+j*j;//求金币
    sum=sum+(t+1)*n;//满一轮的加上未满一轮的
    printf("金币总数为:%d
",sum);
    return 0;
}
 

运行结果:

原文地址:https://www.cnblogs.com/yanglike111/p/13191883.html