【题目】 http://acm.hdu.edu.cn/showproblem.php?pid=1001
【报告】
简单的求和,不过得考虑中间溢出的情况,不能直接用n*(n+1)/2求和。
【程序】
// TASK: 1001 Sum Problem
#include <cstdlib>
#include <iostream>
#include <cstdio>
using namespace std;
int main(int argc, char *argv[])
{
long n,sum;
for (;cin >> n;)
{
if (!(n%2)) sum=n/2,sum*=n+1;
else sum=(n+1)/2,sum*=n;
cout << sum << endl << endl;
}
return EXIT_SUCCESS;
}
本文介绍了一个简单的求和算法,并讨论了在处理大量数据时如何避免溢出问题,通过不同的条件判断实现正确的求和逻辑。
405

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



