美文网首页kotlin
25.尾递归优化

25.尾递归优化

作者: 写代码的向日葵 | 来源:发表于2019-09-29 01:19 被阅读0次

    1.代码如下:

    /**
     * 只有尾递归才能优化
     * 1.需要将递归转化为尾递归
     * 2.加上关键字tailrec
     */
    fun main(args: Array<String>) {
        val result=sum(100000)
        println(result)
    }
    tailrec  fun sum(n:Int,result:Int=0):Int{
        if (n==1)
        {
            return result+1
        }
        return sum(n-1,result+n)
    }
    

    只有尾递归才能优化

    1.需要将递归转化为尾递归
    2.加上关键字tailrec

    2.尾递归的原理,看编译后的java代码如下:

    image.png

    最后是转换成了迭代

    相关文章

      网友评论

        本文标题:25.尾递归优化

        本文链接:https://www.haomeiwen.com/subject/etpxpctx.html