首页 > 解决方案 > 我试图理解递归?为什么当我运行此代码时答案是 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?

标签: javarecursion

解决方案


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。


推荐阅读