/*国王用金币奖励他忠诚的侍从,第一天侍从工作结束后,国王奖励了他一个金币; 接着的两天侍从工作中(第二天,第三天)的每一天,国王奖励了他两个金币;接着的三天 侍从工作中(第四、五、六天)的每一天,国王奖励了他三个金币;接着的四天侍从工作中( 第七、八、九、十天)的每一天,国王奖励了他四个金币。这种奖励的模式将是固定不变的, 即在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; }
运行结果: