资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
求1+2+3+...+n的值。
输入格式
输入包括一个整数n。
输出格式
输出一行,包括一个整数,表示1+2+3+...+n的值。
样例输入
4
样例输出
10
样例输入
100
样例输出
5050
数据规模与约定
1 <= n <= 1,000,000,000。
本题直接的想法是直接使用一个循环来累加,然而,当数据规模很大时,这种“暴力”的方法往往会导致超时。而且当n较大时也会导致答案的大小超出int的范围,所以应用long long来定义。其实这道题想要摆脱循环这种暴力的方式很简单,使用我们高中所学的等差数列求和公式即可。
代码如下
#include<iostream>
using namespace std;
int main()
{
long long n;
cin >> n;
cout << n+n*(n-1)/2;
return 0;
}
很简单吧。