HDOJ Sum Problem

来源:互联网 发布:水果软件初学者教程 编辑:程序博客网 时间:2024/05/16 06:32

点击打开链接

这个题求和,高斯定理嘛,对是这样的,不过直接这样会wa的,因为题目限制32bit,n*(n+1)会造成溢出。。。。。

解决方法,先算除法,后算乘法

1.当n为偶数时(n+1)*n/2==n/2*(n+1);

2.当那为奇数(n+1)*n/2==(n+1)/2*n......

代码如下:

#include <iostream>using namespace std;int main(void){int n;while (cin >> n){if (n % 2 == 0)cout << (n/2)*(n+1) << endl << endl;elsecout << ((n+1)/2)*n << endl << endl;}return 0;}


原创粉丝点击