kotlin

25.尾递归优化

2019-09-29  本文已影响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

最后是转换成了迭代

上一篇下一篇

猜你喜欢

热点阅读