问题描述
求1+2+3+…+n的值。
输入格式
输入包括一个整数n。
输出格式
输出一行,包括一个整数,表示1+2+3+…+n的值。
样例输入
4
样例输出
10
样例输入
100
样例输出
5050
数据规模与约定
1 <= n <= 1,000,000,000。
这道题有两个坑:
- 不仅是很容易想到的答案,其实连n也不是int型可以承载的,需要用 long long 型
- 假如用循环做的话,很容易会因为数值过大而使得时间过长。所以用求和公式:sum=n*(n-1)/2,这就是为什么他是入门题的原因啊!!!
上代码:
#include<iostream>
#include<cmath>
using namespace std;
int main(){
long long n;
cin>>n;
long long d=n*(n+1)/2;
cout<<d<<endl;
return 0;
}