<少女> 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 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题