这个 Scala 递归代码有什么问题?
What is wrong with this Scala recursive code?
我最近开始学习 Scala 并尝试在其中实现一个递归函数。我这个练习的目标是 return 斐波那契数列中的第 n 个数字。
def fib(n: Int ): Int = {
def go(n:Int, prev:Int, curr: Int, res:Int): Int =
if (n == 0 ) res
else go(n-1, curr, prev+curr, prev+curr)
go (n, 0, 1, 0 )
}
def main(args: Array[String]): Int =
println(fib(7))
没有编译错误,但是结果以左括号和右括号形式出现。
结果-->()
任何建议。
终于明白了。
这是我的做法。
def fib(n: Int ) : Int = {
def go(n: Int, prev: Int, curr: Int, res: Int): Int =
if (n == 0 ) res
else go(n-1, curr, prev+curr, prev+curr)
go (n-2, 0, 1, 0 )
}
def main(args: Array[String]): Unit =
println(fib(10))
我最近开始学习 Scala 并尝试在其中实现一个递归函数。我这个练习的目标是 return 斐波那契数列中的第 n 个数字。
def fib(n: Int ): Int = {
def go(n:Int, prev:Int, curr: Int, res:Int): Int =
if (n == 0 ) res
else go(n-1, curr, prev+curr, prev+curr)
go (n, 0, 1, 0 )
}
def main(args: Array[String]): Int =
println(fib(7))
没有编译错误,但是结果以左括号和右括号形式出现。
结果-->()
任何建议。
终于明白了。
这是我的做法。
def fib(n: Int ) : Int = {
def go(n: Int, prev: Int, curr: Int, res: Int): Int =
if (n == 0 ) res
else go(n-1, curr, prev+curr, prev+curr)
go (n-2, 0, 1, 0 )
}
def main(args: Array[String]): Unit =
println(fib(10))