案例1:写函数,完成功能:计算a的n次方
/*
* 写函数,完成功能:计算a的n次方
* f(a,n) = a * f(a, n-1)
**/
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
}
汉诺塔游戏
// 汉诺塔游戏
def f(n: Int, A: String, C: String, B: String): Unit = {
if (n == 1) {
println(s"$A → $C")
} else {
// 1. 把 n-1 个盘子从 A 移到 B(借助 C)
f(n - 1, A, B, C)
// 2. 把第 n 个盘子从 A 移到 C
println(s"$A → $C")
// 3. 把 n-1 个盘子从 B 移到 C(借助 A)
f(n - 1, B, C, A)
}
}
def main(args: Array[String]): Unit = {
f(5, "A", "C", "B")
}