我最近开始学习Scala并尝试在其中实现递归功能。我本次练习的目标是返回斐波那契数列的第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))
没有编译错误,但是结果以括号括起来。
结果->()
任何建议。
答案 0 :(得分:1)
最后,我明白了。
这是我的工作方式。
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))