int n,i;

    printf(“n=”);

    scanf(“%d”,&n);

    for(i=1;i<=n;i++)

       printf(“fib(%2d)=%3d\n”,i,fib(i));

       getch();

}

    程序的执行结果是:

n=10

fib( 1)=   1

fib( 2)=   1

fib( 3)=   2

fib( 4)=   3

fib( 5)=   5

fib( 6)=   8

fib( 7)=  13

fib( 8)=  21

fib( 9)=  34

fib(10)=  55

由于fib(n)=fib(n-1)+fib(n-2),而fib(n-1)=fib(n-2)+fib(n-3),fib(n-2)=fib(n-3)+fib(n-4),

,最后可以推到fib(5)=fib(4)+fib(3),fib(4)=fib(3)+fib(2),fib(3)=fib(2)+fib(1),至此,因为fib(2)=fib(1)=1,所以可以算出fib(3)的值。从而算出fib(4)的值,以此类推,最后计算fib(n-2),

fib(n-1)和fib(n)的值。来,自,优.尔:论;文*网www.chuibin.com +QQ752018766-

    因此,在函数fib中,出现对自身的递归调用从fib(n)开始,逐级往下调用,直到调用到函数fib(2)和fib(1)时,函数获得一个确定的返还值,停止继续往下的调用,然后开始逐级向上进行返回的过程,最终通过fib(n-1)和fib(n-2)的调用结果返回到fib(n),获得所需的结果。

2。2。2  间接递归

子程序A和B是嵌套关系的情况下,外层的A被内层的B调用,这是间接递归;子程序A 和B是平级关系的情况下,A调用了B且B调用了A,这也称为间接递归。不过,这种间接递归的方法采用到“超前引用”的规则。

上一篇:人工势场法多机器人编队系统控制
下一篇:基于安卓校园信息管理系统的设计

基于Android的电子拍卖系统设计与开发

基于Web应用的致胜公司企业内部培训系统设计

Matlab基于多旋翼飞行器的飞行控制系统设计

基于字典学习的多视图低维相关表示方法研究

基于android通讯与游戏的手...

基于android的环境信息管理系统设计

基于激光超声检测金属材...

浅谈农村大气环境保护的制度构建【1868字】

日语论文中日酒文化对比研究

个案管理茬老年糖尿病患...

发酵米粉优势菌株的发酵特性研究

淮安市高校足球运动损伤问卷调查表

激光模拟训练器材国内外研究现状

大淘宝网的虚假交易研究

肢体语言在小学英语教学中的应用浅谈

2021年什么行业赚钱,适合...

新疆农林高校學生昆虫生...