我爱占星网 我爱占星网
首页
编程
java
php
前端
首页 编程 java php 前端

请问大家这结果怎么得出来的


long fib(int g)
{
    switch (g) {
    case 1:
    case 2:return 1;
    }
    return (fib(g - 1) + fib(g - 2));
}
int main()
{
    long k;
    k = fib(5);
    printf("k=%d\n", k);
}

递归,一层层的入栈,最后g为 1 或者 2 返回 1,然后再一层层出栈返回

fib(5)=fib(4) + fib(3)
         =fib(3) +fib(2) + fib(2) + fib(1)
         =fib(2) + fib(1) + 1 + 1 + 1
         =1+1+1+1+1
         =5


递归,供参考:


                       fib(5)
               fib(4)            fib(3)
          fib(3)    fib(2)    fib(2)  fib(1)
       fib(2) fib(1)  +1    +    1   +   1
          1  +  1

近期文章

  • 软件开发实验题 加密函数
  • 从键盘输入5个整数,输出能被了整除的数。
  • 如何编写这个数据处理
  • 请教一下VMware+ubuntu 安装gitlab 浏览器无法访问
  • 关于linux的问题
  • .htaccess文件/隐藏子目录
  • Reinhard的MatLab程序变量hdr识别错误
  • matlab floyd带经过节点数量约束的算法
  • 关于javax与jakarta问题
  • 请问有没有什么函数可以用一行代码表达出来
  • 如何用matlab将黑白图片变成彩色图片?
  • 三层交换机互连实验rip
  • Matlab数学建模问题
  • matching games 如何判断数组中卡片是否是全部翻转
  • 请问一下这个异常如何解决
  • 求编程其中最大的奇偶数是怎么弄啊
  • Google cloud dev_appserver.py无法在本地托管laravel项目
  • ivms-4200.exe-致命的应用程序- Run Error
  • 半导体氮化镓流程layer解释
  • Verilog序列检测问题

Copyright ©2022 我爱占星 All Rights Reserved.

浙ICP备2022030071号-1

部分图文来自网络,如有侵犯您的版权,请告诉我们删除

友情链接:代码精华