题目很简单,但是有两点需要注意:
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;
}
被折叠的 条评论
为什么被折叠?