问题描述
求1+2+3+...+n的值。
输入格式
输入包括一个整数n。
输出格式
输出一行,包括一个整数,表示1+2+3+...+n的值。
样例输入
4
样例输出
10
数据规模与约定
1 <= n <= 1,000,000,000。
这个题不能暴力求解会超时,我们可以采用推导的公式来求解,对奇数和偶数分别推导出不同的求和公式,其次,定义的变量要为long long
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long n,ans;
cin>>n;
if(n%2==0){
ans=n*(n/2)+n/2;
}
else{
ans=n*(n+1)/2;
}
cout<<ans;
return 0;
}