給定一陣列 A,請輸出這個陣列的前綴和陣列 B。
定義 : 當 B[i] 為 A[0] + A[1] + … A[i],B 陣列為 A 陣列的前綴和。
範例測資
範例輸入 | 範例輸出 |
---|---|
輸入的第一行有一個整數 N (1 <= N <= 200000),代表 A 陣列大小。 第二行有 N 個整數以空白分隔,依序表示A[0]、A[1]、A[2]、 … 、A[N – 1]。 陣列中數字的絕對值不會超過109。 | 輸出一行,其中有 N 個整數以空白分隔,依序表示 B[0、B[1]、B[2]、…、B[N – 1]。 |
5 1 2 3 4 5 | 1 3 6 10 15 |
解題思路
可以使用 For迴圈 來收資料,並且使用一個變數來存目前的前綴和。需要注意本題需使用 Long Long Int。
範例程式碼-ZeroJudge E339: 前綴和練習
#include <iostream>
using namespace std;
int main() {
cin.sync_with_stdio(0);
cin.tie(0);
long long int N, sum = 0;
cin >> N;
for (int i = 0; i<N; ++i)
{
long long int tmp;
cin >> tmp;
sum += tmp;
cout << sum << " ";
}
cout << "\n";
}
//ZeroJudge E339
//Dr. SeanXD