1. 程式人生 > >藍橋杯:BEGIN-2 序列求和

藍橋杯:BEGIN-2 序列求和

問題描述:

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

輸入格式:

輸入包括一個整數n

輸出格式:

輸出一行,包括一個整數,表示1+2+3+...+n的值。

樣例輸入:

4

樣例輸出:

10

樣例輸入:

100

樣例輸出:

5050

資料規模與約定:

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

題解:

解法一:

思路:使用for迴圈,從1開始,加到第n個數(但是會超時)

#include<iostream>
using namespace std;
int main(void)
{
	long long int n, sum = 0;
	cout << "請輸入一個數(1-1,000,000,000):";
	cin >> n;
	for (int i = 0; i <= n; i++)
		sum = sum + i;
	cout << "和為:" << sum << endl;
	system("pause");
	return 0;
}

解法二:

思路:運用數學公式計算

#include<iostream>
using namespace std;
int main(void)
{
	long long int n, sum = 0;
	cout << "請輸入一個數(1-1,000,000,000):";
	cin >> n;
	sum = (n + 1)*n / 2;
	cout << "和為:" << sum << endl;
	system("pause");
	return 0;
}