一.递归函数的定义:在函数内部,自己调用自己
二.特点:
1.可能会导致死循环,一直调用自己
object scala24 {
def f(): Unit = {
println("f函数被调用了")
f()
}
def main(args: Array[String]): Unit = {
f()
println("main")
}
}
运行结果:
递归函数的应用场景
特点:
1.大问题可以拆解为同样性质的小问题
2.问题拆解到足够小的时候,可以直接求解
举例:
object scala24 {
def f(n:Int): Int = {
if (n == 1){
1
}else {
f(n-1) + n
}
}
def main(args:Array[String]) :Unit={
val rst= f(100)
println(rst)
}
}
改为相乘:
object scala24 {
def f(n:Int): Int = {
if (n == 1){
1
}else {
f(n-1) * n
}
}
def main(args:Array[String]) :Unit={
val rst= f(6)
println(rst)
}
}