Mô tả bài toán
Cho mảng A kích thước n. Mảng ẩn B cũng kích thước n. A[i] = B[i] - B[i+1] + B[i+2] - ... (dấu luân phiên). Cần tìm B.
Ví dụ
A = [6, -4, 8, -2, 3] → B = [2, 4, 6, 1, 3].
Thuật toán
Quan sát: A[i] + A[i+1] = B[i]. Vì A[i] = B[i] - B[i+1] + B[i+2] - ... và A[i+1] = B[i+1] - B[i+2] + ... → cộng hai vế: A[i]+A[i+1] = B[i]. Với i=n-1, A[n-1] = B[n-1] (vì không có A[n]).
Code C++
#include <bits/stdc++.h>
using namespace std;
void solve(vector<int> A) {
int n = A.size();
for (int i = 0; i < n; i++) {
int val = (i+1 < n) ? A[i] + A[i+1] : A[i];
cout << val << (i+1
Đầu vào / Đầu ra
Input: {6, -4, 8, -2, 3}
Output: 2, 4, 6, 1, 3,