Skip to content

Latest commit

 

History

History
60 lines (47 loc) · 1.84 KB

2780.md

File metadata and controls

60 lines (47 loc) · 1.84 KB

递推数列 2780: Eva's Problem

题目要求推断数列的下一项,数列有可能是等差数列也有可能是等比数列。

题目来源

2780: Eva's Problem

总时间限制: 1000ms 内存限制: 65536kB

描述

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

输入

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

输出

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

样例输入

2
1 2 3 4
1 2 4 8

样例输出

1 2 3 4 5
1 2 4 8 16

需要根据数列前4项的值来判断是等差数列还是等比数列,由于只有这两种数列,因此我们求出前四项两两之间的差即可,也可以转化成首尾两项的和等于中间两项的和。如果不满足这个条件则为等比数列。

#include <iostream>
using namespace std;
int main() {
	int t, i, j, a[4];
	cin >> t;
	for (i = 0; i < t; ++i) {
		for (j = 0; j < 4; ++j)	{
			cin >> a[j];
			cout << a[j] << " ";
		}
		if (a[0] + a[3] == a[1] + a[2]) {
			cout << a[3] + a[2] - a[1] << endl;
		}
		else {
			cout << a[3] * a[2] / a[1] << endl;
		}
	}
	return 0;
}

2780.cpp 代码长度:331B 内存:128kB 时间:2ms 通过率:95% 最小内存:128kB 最短时间:0ms

判断出等差数列后,就可以求出下一项,否则按照等比数列处理即可,注意也要输出前四项。

有任何的改进意见欢迎大家在微信平台公众号主页面留言或者发表issue。