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 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)