一个acm大赛的题,快把我搞死了 !!!

2025-02-28 01:04:46
推荐回答(2个)
回答1:

请把题目帖上来。
下面依据你的现有代码推测:此题输入整数n,求1+2+...+n,并输出结果。
这样的话要依据题中说明的输入格式来决定代码:(LZ判断输入结束的方式是有问题的)
如果此题输入以0结束,请使用循环while(scanf("%d",&n),n){}
如果此题输入一直到文件结束,请使用while(1==scanf("%d",&n)){},否则将超时。
另外还要注意以下问题:
1,使用内置类型不会导致结果溢出,可以直接按LZ计算方式
2,使用内置整型可以表示n,但表示结果溢出,这样不会导致超时,但会导致WA。
3,使用内置整型无法表示n,这时需要用到高精度计算。

回答2:

#include "stdio.h"
你的程序是死循环....应该是输入到文件结束,修改如下
int main()
{int n=1,s;
while (scanf("%d",&n)!=EOF)/*循环条件*/
{
if(n==0)
break;
s=(1+n)*n/2;/*求和*/
printf("%d\n",s);
s=0;
}
return 0;
}