本文主要是介绍斐波那契数列(兔子繁殖)问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
算法描述:
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前20个月的数量)
输出格式:
输出20个数字,
思路:
斐波那契数列(Fibonacci sequence),又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)。就是前两个数的和等于第三个数的值。
程序代码:
- 非递归方式:
#include<stdio.h>
int main(){int n1,n2;n1=n2=1;for(int i=0;i<10;i++){printf("%d\n",n1);printf("%d\n",n2);n1=n1+n2;n2=n2+n1;}return 0;
}
- 递归方式:
#include<stdio.h>
int Fibon(int n){if(n==1||n==2){return 1;}else{return Fibon(n-1)+Fibon(n-2);}
}
int main(){for(int i=1;i<=20;i++){printf("%d\n",Fibon(i));}return 0;
}
- 数组表示
#include<stdio.h>
int main(){int a[20]={0};a[0]=a[1]=1;for(int i=2;i<20;i++){a[i]=a[i-1]+a[i-2];}for(int i=1;i<20;i++){printf("%d\n",a[i]);}return 0;
}
运行结果:
这篇关于斐波那契数列(兔子繁殖)问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!