【问题描述】
输入2个正整数m和n(m≥1,n≤10000),输出m到n之间所有的Fibonacci数Fibonacci数列(第一项起):1,1,2,3,5,8,13,21…
【输入形式】
从键盘输入2个整数m和n,以空格分隔。
【输出形式】
输出m到n之间所有的Fibonacci 数,以空格分隔。
【样例输入1】
20 100
【样例输出1】
21 34 55 89
【样例输入2】
50 300
【样例输出2】
55 89 144 233
#include<iostream>
using namespace std;
int Fibonacci(int x);
int main()
{
int m,n,x=1; //定义函数项数x
cin>>m>>n; //输入范围m,n
do //运用do-while或while循环因为不知道循环次数,只知道结束条件
{
//当函数值位于m,n之间时输出
if((Fibonacci(x)>=m)&&(Fibonacci(x)<=n))
{
cout<<Fibonacci(x)<<' ';
}
x=x+1;
//x加一
}while(Fibonacci(x)<=n);
return 0;
}
int Fibonacci(int x) //定义Fibonacci数列的函数(递归)
{
int t; //定义返回值
if(x==1||x==2) t=1; //初始两项为1
else t=Fibonacci(x-1)+Fibonacci(x-2); //后每一项=前两项之和
return t;
}