我希望这个问题不是骗人的。似乎大多数问题都涉及一个语句中的多个递归调用,即:return func(n - 1) * func(n - 2)
。我的问题涉及if/else
语句中的多个递归调用。这就是我所拥有的(来自做一个 Project Euler 问题):
def multOfThreeAndFive(n: Double): Double = {
def loop(next: Double, acc: Double): Double = {
if (next < 0) acc
else if (next % 3 == 0 || next % 5 == 0) loop(next - 1, acc + next)
else loop(next - 1, acc)
}
loop(n - 1, 0)
}
我的问题是,由于我正在进行两个单独的递归调用,一个在内部else if
,另一个在最后一个内部else
,这仍然被认为是尾递归吗?