gpt4 book ai didi

kotlin - 无法在Kotlin中的tailrec函数中返回阶乘结果

转载 作者:行者123 更新时间:2023-12-02 12:43:50 26 4
gpt4 key购买 nike

我在Kotlin中练习递归,并决定创建一个阶乘函数

fun fact(x:Int):Int{

tailrec fun factTail(y:Int, z:Int=1) : Int{

if (x == 0) {return z}
else if (x == 1) {return z}
else {
return factTail(y-1, y*z)
}

}

return factTail(x,1)

我只是在main中调用此函数:
fun main(args: Array<String>) {

println("5! is ${fact(5)}")

}

我没有任何错误,但是我也看不到任何结果。

最佳答案

if (x == 0) {return z}
else if (x == 1) {return z}

这些检查应该针对 y而不是 xx是外部 fact函数的参数,并且永不更改:)

您不会出错或崩溃,因为无限递归调用已优化为无限循环。

关于kotlin - 无法在Kotlin中的tailrec函数中返回阶乘结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44481924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com