【C语⾔】案例⼆⼗五兔⼦数列(斐波那契数列)
案例描述
兔⼦数列⼜称斐波那契数列,黄⾦分割数列,具体描述如下:⼀对兔⼦在出⽣两个⽉后,每个⽉都能⽣出⼀对⼩兔⼦,现有⼀对刚出⽣的兔⼦,假设所有兔⼦都不死,那么⼀年后有对少只兔⼦?
案例分析
n表⽰⽉份,则兔⼦数量为⼀个关于n的函数f(n)
满⾜:f(n) = f(n - 1) + f(n + 2) (n > 1)
必备知识
所谓递归即程序对⾃⾝的调⽤,是过程或函数在其定义或说明中直接或间接调⽤⾃⾝的⼀种⽅法。他通常把⼀个⼤型的复杂问题层层转化成⼀个与原问题相似但规模较⼩的问题来求解。递归只需要少量代码就可以描述出解题过程所需要的多次重复计算,⼤⼤减少了程序的代码量。
在函数递归调⽤时,需要确定两点:⼀是递归公式,⼆是边间条件
递归公式是递归求解过程中的归纳项,⽤于处理原问题规律相同的⼦问题。
边界条件即终⽌条件,⽤于终⽌递归。
完整代码
#include<stdlib.h>
#include<stdio.h>
int getnum(int n)
{
if(n ==1|| n ==2)
return1;
return getnum(n -2)+getnum(n -1);
}
int main()
{
printf("f(1)=%d\n",getnum(1));
printf("f(2)=%d\n",getnum(2));
printf("f(3)=%d\n",getnum(3));
printf("f(4)=%d\n",getnum(4));
printf("f(5)=%d\n",getnum(5));
printf("f(6)=%d\n",getnum(6));
printf("f(9)=%d\n",getnum(9));
c语言斐波那契数列printf("f(12)=%d\n",getnum(12));
system("pause");
return0;
}
运⾏结果如下:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论