首页 > 其他 > 详细

递归与尾递归,傻傻地分不清楚

时间:2021-06-19 23:00:28      阅读:19      评论:0      收藏:0      [点我收藏+]
 //递归,累计+1,非尾递归
    public static int cap(int n) {
        if (n == 1) {
            return 1;
        }
        return cap((n - 1)) + 1;
    }

    //递归,累计+1,尾递归
    public static int capTail(int n, int m) {
        if (n == 1) {
            return m;
        }
        m++;
        return capTail((n - 1), m);
    }

    //阶乘,非尾递归
    public static int factorial(int n) {
        if (n == 1) {
            return 1;
        }
        return n * factorial((n - 1));
    }

    //阶乘,尾递归
    public static int factorialTail(int n, int m) {
        if (n == 1) {
            return n;
        }
        m *= n;
        return factorialTail((n - 1), m);
    }

 

递归与尾递归,傻傻地分不清楚

原文:https://www.cnblogs.com/Small-sunshine/p/14903886.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!