●两种方法求斐波那契数
●斐波那契数:0,1,1,2,3,5,8,13,21……
从第三个数起,每个数=前面两个数之和
int fib(int n) //递归
{
if(n==1)
{
return 0; //第一个斐波那契数返回0
}
if(n==2)
{
return 1; //第二个斐波那契数返回1
}
else
{
return fib(n-1)+fib(n-2);
//从第三个数起,每个数=是前面两个数的和
//进行不断地递归,直到 return 一个值
}
}
//
//
int fib(int n) //非递归
{
if(n==1)
{
return 0;
}
//赋值第一、二、三个斐波那契数
int first=0;
int second=1;
int third=1;
while(n>2) //注意判断条件
{
//每次循环 third、second、first的值向后更新
third=first+second;
first=second;
second=third;
n--;
}
return third; //当n==2时,可直接返回third
}
int main()
{
int x=0;
printf("请输入一个数:");
scanf("%d",&x);
printf("%d",fib(x));
return 0;
}
0、1、1、2、3、5、...フィボナッチ番号を見つけるにはどうすればよいですか?(再帰的および非再帰的)
おすすめ
転載: blog.csdn.net/cfk17829572643/article/details/109728917
ランキング