POJ 1658 Eva's Problem(我的水题之路——等差or等比)

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

POJ Monthly--2004.05.15 Null

中文题意,不解释了。

分别比较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;
}


你可能感兴趣的:(POJ 1658 Eva's Problem(我的水题之路——等差or等比))