练习题
练习1:求a的n次方
起始条件:f(a,0) = 1
递归规则:f(a,n)=a * f(a,n-1)
object basic43 {
def f(a:Int,n:Int):Int = {
if(n == 0){
1
} else {
a * f(a,n-1)
}
}
def main(args: Array[String]): Unit = {
val rst = f(2,3) //8
println(rst)
}
}
练习2:汉诺塔游戏
起始条件:f(a,0) = 1
递归规则:f(a,n)=a * f(a,n-1)
object basic44 {
var i = 1;
def hanoi(n:Int,A:String,C:String,B:String):Unit = {
if(n == 1){
println(s"$i,move 1 from $A -> $C")
i += 1
} else {
hanoi(n-1,A,B,C)
println(s"$i,move $n from $A -> $C")
i += 1
hanoi(n-1,B,C,A)
}
}
def main(args: Array[String]): Unit = {
//4个盘子,从A移动到C,借助B
hanoi(4,"A","C","B")
}
}