蓝桥杯-序列求和

问题描述

求1+2+3+…+n的值。

输入格式

输入包括一个整数n。

输出格式

输出一行,包括一个整数,表示1+2+3+…+n的值。

样例输入

4

样例输出

10

样例输入

100

样例输出

5050

数据规模与约定

1 <= n <= 1,000,000,000。

求解

第一种 在数据规模上过不去的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
using namespace std;
int main()
{
long long j;
long long sum=0;
cin>>j;
//
for(long long i = 0; i <= j; i++)
{
sum+=i;
}
cout<<sum;
return 0;

第二种 直接使用求和公式

这种方法在数据规模上可以通过

1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
using namespace std;
int main()
{

long long j;
long long sum=0;
cin>>j;
sum=j*(j+1)/2;
cout<<sum;
return 0;
}