递归:在函数内部 自己调用自
应用场景:
- 1.大问题可以拆解为同样性质的小问题
- 2.问题拆解到足够小的时候,可以直接求解
特点;可能会导致死循环:一直调用自己
案例1:求1+2+3+.......+99+100的和
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)
}
案例2:求123*.......*n (n的阶乘)
def f(n:Int): Int = {
if(n==0){
1
}else{
f(n-1)*n
}
}
def main(args: Array[String]): Unit = {
val rst = f(0)
println(rst)
}
}