Eva's Problem
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 14675 | Accepted: 8878 |
Description
Eva的家庭作业里有很多数列填空练习。填空练习的要求是:已知数列的前四项,填出第五项。因为已经知道这些数列只可能是等差或等比数列,她决定写一个程序来完成这些练习。
Input
第一行是数列的数目t(0 <= t <= 20)。以下每行均包含四个整数,表示数列的前四项。约定数列的前五项均为不大于10^5的自然数,等比数列的比值也是自然数。
Output
对输入的每个数列,输出它的前五项。
Sample Input
2 1 2 3 4 1 2 4 8
Sample Output
1 2 3 4 5 1 2 4 8 16
Source
中文题意,不解释了。
分别比较1、2和3、4,之间是等差还是等比,然后输出得解。
注意点:
1)这个地方可能会是0 0 0 0 0,不过题中数据可能没有,需要额外判断,因为除数不可以为0.
2)输入变量记得加地址符号&(1RE T_T)
代码(1AC1RE):
#include <cstdio>
#include <cstdlib>
int main(void){
int cha ,bi;
int casenum, ii;
int i, num1, num2;
scanf("%d", &casenum);
for (ii = 0; ii < casenum; ii++){
scanf("%d%d", &num1, &num2);
if (num1 != 0){
cha = num2 - num1;
bi = num2 / num1;
}
else {
cha = num2 - num1;
bi = -1;
}
printf("%d %d ", num1, num2);
scanf("%d%d", &num1, &num2);
if (cha == num2 - num1){
printf("%d %d %d\n", num1, num2, num2 + cha);
}
else if (bi != -1 && bi == num2 / num1){
printf("%d %d %d\n", num1, num2, num2 * bi);
}
}
return 0;
}