給定一陣列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]。
練習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;
}
APCS
C++