C·RX 2021-09-29 02:50 采纳率: 60%
浏览 52
已结题

java关于不死神兔子的繁殖理解(斐波那契数列--兔子繁殖)

第一次发贴求解,自学java,关于不死神兔代码的理解卡壳了,原理基本懂:f(n)=f(n-1)+f(n-2);
代码如下:

public class DiGui {
    
    public static void main(String[] args) {
        System.out.println(fib(4));
        
    }
    public static int fib(int n) {
        if(n == 1 || n == 2) {
            return 1;
        }else {
            int fib1,fib2,fib3;
            fib1=fib(n-1);
                        fib2=fib(n-2);
                        fib3=fib1+fib2;
            System.out.println("n="+n);
            System.out.println("n1:"+(n-1));
            System.out.println("n2:"+(n-2));
            System.out.println("fib1="+fib1+":"+"fib2="+fib2);
            System.out.println("fib3="+fib3);
            System.out.println("--------------------");
            return fib3;
        
        }
    }

}


运行的如果如下:

n=3
n1:2
n2:1
fib1=1:fib2=1
fib3=2
--------------------
n=4
n1:3
n2:2
fib1=2:fib2=1
fib3=3
--------------------
3

不理解的地方是:fib(n-1)和fib(n-2),输出的结果是:
fib1=fib(n-1); 当n=4时:fib1=2、当n=3时:fib1=1
fib2=fib(n-2); 当n=4时:fib2=1、当n=3时:fib2=1
请问该如何理解?

  • 写回答

1条回答 默认 最新

  • 关注

    这是递归调用。
    调用过程是,首先 System.out.println(fib(4));调用fib(4)
    在fib(4)中n=4,
    执行到 fib1=fib(n-1);时等于是调用fib(3)
    在fib(3)中n=3,
    又执行到 fib1=fib(n-1);时等于是调用fib(2)
    在fib(2)中 直接return 1;
    又回到在fib(3)中执行到 fib2=fib(n-2);时等于是调用fib(1)
    在fib(1)中也是直接return 1;
    又回到在fib(3)中继承执行 fib2=fib(n-2);之后的代码,输出:
    n=3
    n1:2
    n2:1
    fib1=1:fib2=1
    fib3=2


    等执行到return fib3;会回到fib(4)中又执行 fib2=fib(n-2);等于是又调用fib(2)一次。
    在fib(2)中return 1;
    又回到在fib(4)中继承执行 fib2=fib(n-2);之后的代码,输出:
    n=4
    n1:3
    n2:2
    fib1=2:fib2=1
    fib3=3


    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月7日
  • 已采纳回答 9月29日
  • 创建了问题 9月29日

悬赏问题

  • ¥15 用lstm来预测股票价格
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上