递归函数:自己调用自己,可能会产生死循环
def f(): Unit = {
println("f()被调用")
f()
}
def main(args: Array[String]): Unit = {
f()
}
输出结果
求1+2+3+......+(N-1)+N的和
object phx34 {
def f(n:Int): Int = {
if(n==1)
1
else
f(n-1)+n
}
def main(args: Array[String]): Unit = {
var m=f(100)
println(m)
}
}
输出结果
求123*....*10的和
object phx35 {
def f(n:Int): Int = {
if(n==1)
1
else
f(n-1)*n
}
def main(args: Array[String]): Unit = {
var m=f(10)
println(m)
}
}
输出结果
求小米上10个梯回家,每次能上一个楼梯,或者俩个楼梯,则有几种方法回家
object phx36 {
def f(n:Int): Int = {
if(n==1) {
1
}else if(n==2)
{
2
}
else
f(n-1)+f(n-2)
}
def main(args: Array[String]): Unit = {
var m=f(10)
println(m)
}
}
输出结果
依次输出各位数的数字
def f(n:Int,A:Char,B:Char,C:Char):Unit={
if(n==1){
println(s"${A}----> ${C}")
}else{
f(n-1,A, C, B)
println(s"${A}----> ${C}")
f(n-1,B, A,C)
}
}
def main(args: Array[String]): Unit = {
f(4,'A','B','C')
}