Try   HackMD

e339: 前綴和練習

題目:

給定一陣列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]。

陣列中數字的絕對值不會超過10^9。

輸出一行,其中有N個整數以空白分隔,依序表示B[0], B[1], B[2] B[N-1]。

C++ Code:

練習vector

#include <iostream> #include <vector> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); //IO加速 long long N = 0, tmp = 0; vector<long long> v_A, v_B; cin >> N; for (int i = 0; i < N; i++) { cin >> tmp; v_A.push_back(tmp); if (i == 0) { v_B.push_back(tmp); } else { v_B.push_back(v_B[i - 1] + tmp); } cout << v_B[i] << " "; } return 0; }

偷吃步

#include <iostream> using namespace std; int main() { long long N = 0, tmp = 0, total = 0; cin >> N; for (int i = 0; i < N; i++) { cin >> tmp; total += tmp; cout << total << " "; } return 0; }
tags: APCS C++