题目很简单,但是有两点需要注意:
1.虽然最后输出结果是32位的,但是中间做乘法运算的时候仍然可能会溢出,一个简单的解决方法是改变运算顺序,把n*(n+1)/2变为(n+1)/2.0*n当然输出是%.f
2.题目要求输出每行结果后,换两行输出。
#include <stdio.h>
int main ()
{
int n;
while (scanf("%d",&n)!=EOF)
printf("%.f\n\n",(n+1)/2.0*n);
return 0;
}
题目很简单,但是有两点需要注意:
1.虽然最后输出结果是32位的,但是中间做乘法运算的时候仍然可能会溢出,一个简单的解决方法是改变运算顺序,把n*(n+1)/2变为(n+1)/2.0*n当然输出是%.f
2.题目要求输出每行结果后,换两行输出。
#include <stdio.h>
int main ()
{
int n;
while (scanf("%d",&n)!=EOF)
printf("%.f\n\n",(n+1)/2.0*n);
return 0;
}