在 Scala 中,递归是一种通过函数调用自身来解决问题的方法。以下是一个用 Scala 实现的简单递归函数示例,计算阶乘:
def factorial(n: Int): Int = {
if (n == 0) {
} else {
n*factorial(n - 1)
}
}
你可以这样调用这个函数:println(factorial(5))
这个函数在计算 n 的阶乘时,如果 n 等于 0,则返回 1;否则,返回 n 乘以 n - 1 的阶乘,通过不断地调用自身来实现阶乘的计算。
再举一个斐波那契数列的递归实现例子:
def fibonacci(n: Int): Int = {
if (n <= 1) {
} else {
fibonacci(n - 1) + fibonacci(n - 2)
}
}
调用方式:println(fibonacci(6))
这个函数计算第 n 个斐波那契数,如果 n 小于等于 1,则返回 n ;否则,返回第 n - 1 个斐波那契数和第 n - 2 个斐波那契数之和。需要注意的是,对于较大的 n ,这种递归实现可能会非常耗时,因为会有很多重复计算。可以考虑使用动态规划等方法来优化。