m0_46864401 2020-04-07 14:00 采纳率: 33.3%
浏览 748
已采纳

求解答《斐波那契数列算法》的代码注释— 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

public static void rabbit() {
        int mun1=1,mun2=1;
        int mun;
        int month=10;
        for(int i=1;i<=month;i++) {
        if(i<=2) {
        System.out.println("第"+i+"个月的兔子总数量是1对");
                 }else {
                mun=mun2;
                mun2=mun1+mun2;
                mun1=mun;
        System.out.println("第"+i+"个月的兔子
            总数量是"+mun2+"对");
            }
        }
```重点解答一下
                mun=mun2;
                mun2=mun1+mun2;
                mun1=mun;
            System.out.println("第"+i+"个月的兔子
            总数量是"+mun2+"对");
这串代码的意思,数学不好搞了一个小时没搞明白为什么是这样子写,
**mun**的值在**mun2=mun1+mun2**这串代码里是否也变成**了mun1+mun2?**
  • 写回答

2条回答 默认 最新

  • 辰行 2020-04-07 14:15
    关注

    你好。
    首先,mun的值没有变成mun1+mun2。因为,先将mun2的值复制给了mun,此处仅仅是把mun2的值复制给mun,随后mun 和mun2便没有任何联系了。
    对于上述三行代码:斐波那契数列是:1、1、2、3、5、8、13、21、34....开始时,mun1=1,mun2=2 然后经过一次循环上述三行代码后,mun1=1,mun2=2
    再经过一次循环后,mun1=2,mun2=3 由此可见这三行代码是将mun1,mun2依次后移
    由斐波那契数列公式可知:f(n)=f(n-1)+f(n-2)
    希望能够帮助你理解

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景