您的位置:首页 > 其它

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

2012-02-01 23:11 323 查看
Eva's Problem

Time Limit: 1000MSMemory Limit: 10000K
Total Submissions: 14675Accepted: 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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: