演算法基礎入門 序列求和

2021-09-09 08:33:52 字數 917 閱讀 3727

求和要注意兩點:

1.資料規模大小

2.**執行效率

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

輸入包括乙個整數n。

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

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

n=1,000,000,000的值超出32位整數int範圍

_序列求和,最先想到的肯定是迴圈n2,但當資料規模很大時,暴力迴圈就會導致超時,所以我們就要轉變思維,想想去算這類式子有什麼簡單的演算法。

就本題而言,我們可以利用等差數列求和公式sum=(1+n)n/2

因為最大值已超過32位整型值,所有我們做運算時要在64位整數下進行。

unsigned long int  0~4,294,967,295 (32位作業系統)

在c/c++中,64位整型一直是一種沒有確定規範的資料型別。現今主流的編譯器中,對64為整型的支援也是標準不一,形態各異。一般來說,64位整型的定義方式有long long和__int64兩種,而輸出到標準輸出方式有printf(「%lld」,a),printf(「%i64d」,a),和cout << a三種方式。

#include

using namespace std;

intmain()

入門訓練 序列求和

入門訓練 序列求和 時間限制 1.0s 記憶體限制 256.0mb 問題描述 求1 2 3 n的值。輸入格式 輸入包括乙個整數n。輸出格式 輸出一行,包括乙個整數,表示1 2 3 n的值。樣例輸入 4 樣例輸出 10樣例輸入 100 說明 有一些試題會給出多組樣例輸入輸出以幫助你更好的做題。一般在提...

入門訓練 序列求和

問題描述 求1 2 3 n的值。輸入格式 輸入包括乙個整數n。輸出格式 輸出一行,包括乙個整數,表示1 2 3 n的值。樣例輸入 4 樣例輸出 10 樣例輸入 100 說明 有一些試題會給出多組樣例輸入輸出以幫助你更好的做題。一般在提交之前所有這些樣例都需要測試通過才行,但這不代表這幾組樣例資料都正...

入門訓練 序列求和

問題描述 求1 2 3 n的值。輸入格式 輸入包括乙個整數n。輸出格式 輸出一行,包括乙個整數,表示1 2 3 n的值。樣例輸入 4樣例輸出 10樣例輸入 100 說明 有一些試題會給出多組樣例輸入輸出以幫助你更好的做題。一般在提交之前所有這些樣例都需要測試通過才行,但這不代表這幾組樣例資料都正確了...