游客 Signup | Login
中文 | En

1050 - 找规律填数字

小宇正在读小学,今天老师布置了几道数学题目。小宇平时上课经常不专心,这些他可发愁了,怎么办呢?看看你能不能帮帮他。
题目是给你一组有规律序列的前面5个整数,请你给出它后面跟着的5个整数,如:1,2,3,4,5,,,_,__,_。这是个等差数列,后面应该是6,7,8,9,10,就这么简单。而且现在小宇已经知道这串序列要么是等差数列,要么是等比数列或者是斐波那契数列。

Input

输入包含多组测试数据。每组输入5个整数,每个数字之间隔一个空格,当5个数字都为0时输入结束。

Output

对于每组输入,输出这串数列的后面5个数字,每个数字之间隔一个空格。

Examples

Input

1 2 3 4 5
1 2 4 8 16
1 2 3 5 8
0 0 0 0 0

Output

6 7 8 9 10
32 64 128 256 512
13 21 34 55 89

Solution C

#include<stdio.h>

int main()
{
	float a,b,c,d,e,x,x1,x2,x3,x4,x5;
	while(scanf("%f%f%f%f%f",&a,&b,&c,&d,&e)!=EOF&&a!=0&&b!=0&&c!=0&&d!=0&&e!=0)
	{
		if(b-a==c-b&&d-c==c-b&&e-d==d-c)
		{
			x=b-a;
			x1=e+x;
			x2=x1+x;
			x3=x2+x;
			x4=x3+x;
			x5=x4+x;
			printf("%.f %.f %.f %.f %.f\n",x1,x2,x3,x4,x5);
		}
		if(b/a==c/b&&d/c==c/b&&e/d==d/c)
		{
			x=b/a;
			x1=e*x;
			x2=x1*x;
			x3=x2*x;
			x4=x3*x;
			x5=x4*x;
			printf("%.f %.f %.f %.f %.f\n",x1,x2,x3,x4,x5);
		}
		if(c==a+b&&d==b+c&&e==c+d)
		{
			x1=d+e;
			x2=e+x1;
			x3=x2+x1;
			x4=x3+x2;
			x5=x4+x3;
			printf("%.f %.f %.f %.f %.f\n",x1,x2,x3,x4,x5);
		}
	}
	return 0;
}

Solution C++

#include<stdio.h>

int main()
{
	float a,b,c,d,e,x,x1,x2,x3,x4,x5;
	while(scanf("%f%f%f%f%f",&a,&b,&c,&d,&e)!=EOF&&a!=0&&b!=0&&c!=0&&d!=0&&e!=0)
	{
		if(b-a==c-b&&d-c==c-b&&e-d==d-c)
		{
			x=b-a;
			x1=e+x;
			x2=x1+x;
			x3=x2+x;
			x4=x3+x;
			x5=x4+x;
			printf("%.f %.f %.f %.f %.f\n",x1,x2,x3,x4,x5);
		}
		if(b/a==c/b&&d/c==c/b&&e/d==d/c)
		{
			x=b/a;
			x1=e*x;
			x2=x1*x;
			x3=x2*x;
			x4=x3*x;
			x5=x4*x;
			printf("%.f %.f %.f %.f %.f\n",x1,x2,x3,x4,x5);
		}
		if(c==a+b&&d==b+c&&e==c+d)
		{
			x1=d+e;
			x2=e+x1;
			x3=x2+x1;
			x4=x3+x2;
			x5=x4+x3;
			printf("%.f %.f %.f %.f %.f\n",x1,x2,x3,x4,x5);
		}
	}
	return 0;
}
Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题