SDJZ 找规律填数字
2013-08-18 20:26
363 查看
题目描述
小宇正在读小学,今天老师布置了几道数学题目。小宇平时上课经常不专心,这些他可发愁了,怎么办呢?看看你能不能帮帮他。题目是给你一组有规律序列的前面5个整数,请你给出它后面跟着的5个整数,如:1,2,3,4,5,___,___,___,__,___。这是个等差数列,后面应该是6,7,8,9,10,就这么简单。而且现在小宇已经知道这串序列要么是等差数列,要么是等比数列或者是斐波那契数列。
输入格式
输入包含多组测试数据。每组输入5个整数,每个数字之间隔一个空格,当5个数字都为0时输入结束。输出
对于每组输入,输出这串数列的后面5个数字,每个数字之间隔一个空格。样例输入
1 2 3 4 51 2 4 8 16
1 2 3 5 8
0 0 0 0 0
样例输出
6 7 8 9 1032 64 128 256 512
13 21 34 55 89
代码:
#include <iostream> #include <cmath> using namespace std; int main() { double a[10]; while(cin>>a[0]>>a[1]>>a[2]>>a[3]>>a[4]) { if((a[0]==0)&&(a[1]==0)&&(a[2]==0)&&(a[3]==0)&&(a[4]==0)) { break; } else if((a[0]==1)&&(a[1]==1)&&(a[2]==1)&&(a[3]==1)&&(a[4]==1)) { for(int u=5;u<10;u++) { cout<<"1 "; } cout<<endl; } else { double d1=a[4]-a[3],d2=a[3]-a[2],d3=a[2]-a[1],d4=a[1]-a[0]; double q1=a[4]/a[3],q2=a[3]/a[2],q3=a[2]/a[1],q4=a[1]/a[0]; if((d1==d2)&&(d2==d3)&&(d3==d4)) { double n=d1; for(int i=5;i<10;i++) { a[i]=a[0]+n*i; cout<<a[i]<<" "; } cout<<endl; } else if((q1==q2)&&(q2==q3)&&(q3==q4)) { double q=q1; for(int j=5;j<10;j++) { a[j]=a[0]*pow(q,j); cout<<a[j]<<" "; } cout<<endl; } else { double d[10]; d[0]=a[0]; d[1]=a[1]; for(int t=2;t<10;t++) { d[t]=d[t-1]+d[t-2]; } for(int y=5;y<10;y++) { cout<<d[y]<<" "; } cout<<endl; } } } return 0; }
相关文章推荐
- 史上最强数字找规律题
- number number number (数字规律)
- number number number (数字规律)
- 直接写屏的方法输出有规律的数字方阵
- 51nod 1770 数数字(规律)
- 打印有变化规律的一组数字正方形。
- leetcode 738. Monotone Increasing Digits 最大单调递增数字 + 找规律
- number number number (数字规律)
- 1072:找规律填数字
- 51Nod Problem 1004 n^n的末位数字(规律)
- C语言学习,有一个已排好序的数组,要求输入一个数字后,按原来的排序规律将它插入数组
- 三个数字的运算规律预测
- FZU 2191 完美的数字 <数学找规律>
- 总纲:无规律数字游戏的规律
- number number number (数字规律)
- 关于数字规律
- SPOJ GNYR09F 数字上的找规律DP
- 1072:找规律填数字
- number number number (数字规律)
- 1072:找规律填数字