Codebar 程式酒吧

一座輕鬆學習程式的酒吧

0%

a005. Eva的回家作業

題目連結

https://zerojudge.tw/ShowProblem?problemid=a005

解題思路

由題意可知輸入的數列只有等差數列或等比數列兩種可能,因此我們可以先用if_else條件句判斷輸入數列為等差數列還是等比數列,再依據等差數列兩相鄰項差相同、等比數列兩相鄰項比相同的性質推知第五項。

注意事項

根據題意,測資檔會包含多組測資,因此可使用for迴圈判斷程式執行的條件。

程式碼:C語言

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
int main() {
// 宣告並讀取變數t,代表數列的數目
int t;
scanf("%d", &t);
// 使用for迴圈分別討論每一個數列的情況
for(int i = 0 ; i < t ; i++) {
// 宣告並讀取陣列a[4],代表輸入數列的前四項
int a[4];
scanf("%d %d %d %d", &a[0], &a[1], &a[2], &a[3]);
// 若數列任兩項間的差相同,即為等差數列
if(a[1]-a[0] == a[2]-a[1])
printf("%d %d %d %d %d\n", a[0], a[1], a[2], a[3], a[3]+(a[1]-a[0]));
// 若否,即為等比數列
else
printf("%d %d %d %d %d\n", a[0], a[1], a[2], a[3], a[3]*(a[1]/a[0]));
}
return 0;
}