递归函数简介
什么是递归函数?
递归是一种常用的解决问题的方法,特别适用于解决可以被分解为类似子问题的问题。递归函数通常由两个主要部分组成:起始条件(或基线条件)和递归规则(或递归关系)。
起始条件:一个递归的终止条件,确保递归不会无限进行。它处理最简单的情况并返回结果。
递归规则:在这个部分,函数会调用自身,以解决一个更小的子问题。 如:
def recursiveFunction(parameters): ReturnType = {
// 起始条件
if (base condition) {
return base case result
} else {
// 递归规则
return recursiveFunction(smaller parameters)
}
}
案例:
计算a的n次方。
def f(a: Int, n: Int): Int = {
if (n == 0) {
1
} else {
a*f(a,n-1)
}
}
def main(args: Array[String]): Unit = {
val s = f(2, 3)
println(s) // 8
}
汉洛塔游戏
A 起点 ,C 终点,B表示借用的柱子
def f(n: Int, A: String, C: String, B: String): Unit = {
if (n == 1) {
println(s"${A} → ${C}")
} else {
f(n - 1, A, B, C)
println(s"${A} → ${C}")
f(n-1,B,C,A)
}
}
def main(args: Array[String]): Unit = {
f(5, "A", "C", "B")
}