输入m和n,输出m-n之间的所有Fibonacci数,要求使用调用函数fib(n),它的功能是返回第n项Fibonacci数
答案:3 悬赏:0 手机版
解决时间 2021-03-22 22:54
- 提问者网友:骑士
- 2021-03-22 02:06
知道公式 ,但关键是在m-n之间不知道怎么确定返回的第一项是Fibonacci数的第几项。。
最佳答案
- 五星知识达人网友:神鬼未生
- 2021-03-22 03:09
// Author: Yach
// QQ: 79564727
// 申请请注明来者何人..
#include<iostream>
using namespace std;
int fib(int);
void mAndn(int,int);
int fib(int n)
{
int f1 = 2;
int f2 = 3;
int temp=0;
if (n>=3){
for(int i=2;i<n;i++)
{
temp = f1+f2;
f1 = f2;
f2 = temp;
}
return temp;
}
else if (n==2){
return f2;
}
else if (n==1){
return f1;
}
return 0;
}
void mAndn(int m,int n)
{
int swop;
if (m>n){
swop = n;
n = m;
m = swop;
}
int temp= 1;
bool flag = true;
while (flag)
{
if (fib(temp)>=m && fib(temp)<=n)
{
cout<<"第"<<temp<<"个fib数: "<<fib(temp)<<endl;
temp++;
}
else if (fib(temp)>n){flag = false;}
else temp++;
}
}
void main()
{ int m,n;
cout<<"Please input m: "<<endl;
cin>>m;
cout<<"Please input n: "<<endl;
cin>>n;
mAndn(m,n);
cout<<"Continue..."<<endl;
}
// QQ: 79564727
// 申请请注明来者何人..
#include<iostream>
using namespace std;
int fib(int);
void mAndn(int,int);
int fib(int n)
{
int f1 = 2;
int f2 = 3;
int temp=0;
if (n>=3){
for(int i=2;i<n;i++)
{
temp = f1+f2;
f1 = f2;
f2 = temp;
}
return temp;
}
else if (n==2){
return f2;
}
else if (n==1){
return f1;
}
return 0;
}
void mAndn(int m,int n)
{
int swop;
if (m>n){
swop = n;
n = m;
m = swop;
}
int temp= 1;
bool flag = true;
while (flag)
{
if (fib(temp)>=m && fib(temp)<=n)
{
cout<<"第"<<temp<<"个fib数: "<<fib(temp)<<endl;
temp++;
}
else if (fib(temp)>n){flag = false;}
else temp++;
}
}
void main()
{ int m,n;
cout<<"Please input m: "<<endl;
cin>>m;
cout<<"Please input n: "<<endl;
cin>>n;
mAndn(m,n);
cout<<"Continue..."<<endl;
}
全部回答
- 1楼网友:笑迎怀羞
- 2021-03-22 05:22
fib数列有公式,利用该公式就很好做了
- 2楼网友:零点过十分
- 2021-03-22 04:46
public class test {
public static void main(string[] args)
{
system.out.println(fib(7));
reversenum(528945524);
}
public static int fib(int index)
{
if(index<1||index>10000)
return -1;
else if(index==1)
{
return 1;
}else if(index==2)
{
return 1;
}else{
return fib(index-1)+fib(index-2);//递归
}
}
public static void reversenum(int number)
{
if(number<0)
system.out.println("please enter a positive number");//尽量输入正数吧,你可以改,让它支持负数
else{
int result;
int temp=number;
do{
result=temp%10;
temp = temp/10;
system.out.print(result);
}while(temp>0);
system.out.println();
}
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯