题目大意:
国王第一天付给骑士1个硬币,接下来两天每天给骑士2个硬币,接下来三天付给骑士3个硬币,接下来N+1天,骑士每天将收到N+1个硬币。
输入第一行包括N,表示输入的块数。接下来每行输入一个整数,代表天数。
输出包括天数和骑士总共收到的硬币数。
解题思路:
算个加法就行了
代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
int n,a,i,j,sum,total;
scanf("%d",&n);
while(n--)
{
while(scanf("%d",&a)&&a)
{
total=0;
sum=0;
for(i=1;sum<a;i++)
{
sum=sum+i;
}
i=i-1;
for(j=1;j<=i-1;j++)
{
total=total+j*j;
}
total=total+(a-sum+i)*i;
printf("%d %d\n",a,total);
}
if(n)
printf("\n");
}
return 0;
}
本文介绍了一道关于骑士与国王的硬币支付规律问题,并提供了一个C语言实现的解决方案。该问题涉及递增序列求和及算法实现,适用于初学者练习编程思维。
6337

被折叠的 条评论
为什么被折叠?



