#54434: C++陣列解法


william000000000 (unknown)


#include <iostream>

using namespace std;

int main()
{
    int t, d, r, count1 = 0, count2 = 0;
    int num[5] = {0};

    cin >> t;

    for (int j = 0; j < t; j++) {
        for (int i = 0; i < 4; i++) {
            cin >> num[i];
        }

        d = num[1] - num[0]; // 等差
        r = num[1] / num[0]; // 等比

        for (int i = 0; i < 3; i++) {
            if (num[i + 1] - num[i] == d) {
                count1++; // 計算等差的次數
            }

            if (num[i + 1] / num[i] == r) {
                count2++; // 計算等比的次數
            }
        }

        if (count1 == 3) { // 是等差級數
            num[4] = num[3] + d;
        }
        else if (count2 == 3) { // 是等比級數
            num[4] = num[3] * r;
        }

        for (int i = 0; i < 5; i++) {
            cout << num[i] << " ";
        }
        cout << endl; // 換行

        count1 = 0, count2 = 0; // Reset
    }

    return 0;
}