<少女> 2022-11-08 19:13 采纳率: 90.9%
浏览 9
已结题

为什么这里要填(num-1)?如果不填就报错?要实现100+99+..+1=?+addNum(num-1)这一段什么意思?详解必采纳


package Testdemo;

public class testReturn {
    public static void main(String[] args) {
        System.out.println(addNum(100));

    }
    public static int addNum(int num) {
        if(num==1) {
            return 1;
        }else {
            return num+addNum(num-1);//为什么这里要填(num-1)?如果不填就报错?要实现100+99+..+1=?+addNum(num-1)这一段什么意思?
        }
    }

}

为什么这里要填(num-1)?如果不填就报错?要实现100+99+..+1=?+addNum(num-1)这一段什么意思?

  • 写回答

1条回答 默认 最新

  • 於黾 2022-11-08 19:23
    关注

    这明显是个递归呀
    你不填num-1也至少要填个跟num有关的表达式,并且必须是逐渐递减的,而且要保证最终num是1,否则就是无限递归
    所有循环都可以写成递归的形式,这里递归也可以写成循环的形式
    for(num=100;num>=1;num--)
    sum+=num;
    这就是了。如果num不减1,那不是死循环吗

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

报告相同问题?

问题事件

  • 系统已结题 11月16日
  • 已采纳回答 11月8日
  • 创建了问题 11月8日

悬赏问题

  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?