问题描述
求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; }