尾递归 - Scala(任何其他语言)

问题描述 投票:2回答:4

我有一个关于尾递归的问题。据我所知Tail递归是函数的最后一次递归调用将传递函数的结果。但是,当我有这样的功能

def func1(n: Int): Int = {
   if (n > 100) {
      n - 10
   }
   else {
      func1(func1(n + 11))
   }
}

它会是尾递归吗?例如

func1(100) = func1(func1(111)) = func1(101) = 91

所以最后一次递归调用将是func1(101),它应该传递结果,这样尾递归才对吗?我有点困惑。谢谢!

scala recursion tail-recursion
4个回答
© www.soinside.com 2019 - 2024. All rights reserved.