java - 我试图理解递归?为什么当我运行此代码时答案是 13
问题描述
public class Test{
public static int sum(int num){
if (num <= 1){
return num;
}
return 2 + sum(num -1);
}
public static void main(String []args){
System.out.print(sum(7));
}
}
我试图理解递归?为什么当我运行此代码时答案是 13?
解决方案
sum(1)
是 1.
sum(2)
是2 + sum(1)
,所以是 3.
sum(3)
是2 + sum(2)
,所以是 5.
sum(4)
是2 + sum(3)
,所以是 7.
sum(5)
是2 + sum(4)
,所以是 9.
sum(6)
是2 + sum(5)
,所以是 11.
sum(7)
是2 + sum(6)
,所以是 13。
推荐阅读
- vuejs2 - 来自路由器参数的无效道具类型,预期数字得到字符串
- apache-spark - 当我传递参数 --executor-core=1 时,Spark yarn executor 进程使用超过 1000% cpu
- java - 由于加速度计,代码不断崩溃,为什么?
- python - 导入熊猫时出现导入错误
- python - 如何在没有模型的情况下拟合 3D 曲线数据?
- tableau-api - 从云端机器访问tableau server
- c# - Microsoft.Graph.ServiceException:代码:ExtensionError 消息:操作:读取;例外:[任务被取消。]
- r - 在 R 中将推文转换为文本格式时出错
- sql - 根据时间范围拆分列
- javascript - 开玩笑 预期模拟函数已被调用,但未调用