递归函数

37 阅读1分钟

一.递归函数的定义:在函数内部,自己调用自己

二.特点:

1.可能会导致死循环,一直调用自己

object scala24 {
  def f(): Unit = {
    println("f函数被调用了")

    f()
  }

  def main(args: Array[String]): Unit = {
    f()
    println("main")
  }
}

运行结果:

屏幕截图 2025-10-15 151002.png

递归函数的应用场景

特点:

1.大问题可以拆解为同样性质的小问题

2.问题拆解到足够小的时候,可以直接求解

举例:

屏幕截图 2025-10-15 154323.png

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)
  }
}