mmmm0303 2022-09-09 04:50 采纳率: 68.8%
浏览 107
已结题

关于n和输出hello的个数和world个数的关系

public static void MYSTERY(int n) {
        if (n==0)
            System.out.println("hello");

        if(n==1)
            System.out.println("world");

        if(n>=2){
            MYSTERY(n-2);
            MYSTERY(n-2);
            System.out.println("hello");
            System.out.println("world");

        }
    }

关于n和输出hello的个数和world个数的关系

  • 写回答

9条回答 默认 最新

  • 关注

    迭代函数,因为区分了n==0和n==1,所以次数需要根据n的奇偶来区分,其差别就是最后一次输出的是hello还是world
    if(n>=2)这里,循环2次迭代,而且参数每次都-2,所以两次迭代的总次数就是 2的(n/2)-1次方(因为最后一次执行的是n==0或者n==1,所以需要减去1),语句中的打印语句也就执行2的(n/2)次方-1。而if(n==0)和if(n==1)根据n的奇偶性决定执行那一条,但是总次数都是2的(n/2)次方。注意,这里的n/2取整,比如,n=5,n/2的结果是2。当n=0或者n=1时,单独输出hello或者world,其总次数是2的(n/2).
    所以:
    当n为偶数时:每次迭代最后的执行语句为if(n==0),所以hello的次数需要 +2的(n/2)次方
    hello的总次数是:2的(n/2)次方+2的(n/2)次方-1
    world的总次数是:2的(n/2)次方-1
    当n为奇数时:每次迭代最后的执行语句为if(n==1),所以world的次数需要 +2的(n/2)次方
    hello的总次数是:2的(n/2)次方-1
    world的总次数是:2的(n/2)次方+2的(n/2)次方-1

    img

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

报告相同问题?

问题事件

  • 系统已结题 9月19日
  • 已采纳回答 9月11日
  • 修改了问题 9月9日
  • 创建了问题 9月9日

悬赏问题

  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应