1.问题(题目来源蓝桥杯练习系统)
问题描述
求1+2+3+...+n的值。
输入格式
输入包括一个整数n。
输出格式
输出一行,包括一个整数,表示1+2+3+...+n的值。
样例输入
4
样例输出
10
样例输入
100
样例输出
5050
数据规模与约定
1 <= n <= 1,000,000,000。
2.思路
我们可以看到数据的规模很大,简单的递归肯定是行不通的,这时候就需要想到数学公式:(首项 + 末项)* 项数 / 2。
3.代码
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main() {
ll n;
cin >> n;
cout << (1 + n) * n / 2 << endl;
return 0;
}
4.总结
平常让计算机干脏活累活习惯了,很容易忽略更简单直接的方法。