藍橋杯:BEGIN-2 序列求和
阿新 • • 發佈:2019-01-14
問題描述:
求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;
}