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

来源:互联网 发布:抢鞋软件 编辑:程序博客网 时间:2024/05/17 00:16
Eva's Problem
Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 14675 Accepted: 8878

Description

Eva的家庭作业里有很多数列填空练习。填空练习的要求是:已知数列的前四项,填出第五项。因为已经知道这些数列只可能是等差或等比数列,她决定写一个程序来完成这些练习。

Input

第一行是数列的数目t(0 <= t <= 20)。以下每行均包含四个整数,表示数列的前四项。约定数列的前五项均为不大于10^5的自然数,等比数列的比值也是自然数。

Output

对输入的每个数列,输出它的前五项。

Sample Input

21 2 3 41 2 4 8

Sample Output

1 2 3 4 51 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;}