【发布时间】:2018-06-28 14:53:28
【问题描述】:
我最近开始学习 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))
没有编译错误,但是结果是左括号和右括号。
结果--> ()
任何建议。
【问题讨论】:
-
请详细说明,做了什么,你在哪里停留等等。stackOverFlow 不鼓励
how-to-do-this类型的问题.. -
执行此代码会导致左括号和右括号 [my result : ()]。
-
你永远不会从
fib打电话给go。fib不返回任何内容,它的返回类型为Unit。递归调用的基本情况是 7,这绝对不是斐波那契数列的两个基本情况之一。 -
go (n, 0, 1, 0 )应该在方法go之外。 -
@JithinScaria。我可能是新来的,但我知道人们在 stackOverFlow 中会问什么样的问题。因此,如果您不知道答案或愿意提供帮助,那么您不必急于求成,尝试对每个问题发表评论。