递归函数

67 阅读1分钟
object sss012 {
  def f():Unit = {
    println("f.....被调用了")
    f()
  }
  def main(args:Array[String]):Unit = {
    f()

    println("over")
  }
}

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

1递归函数的定义和格式

递归是一种常用的解决问题的方法,特别适用于解决可以被分解为类似子问题的问题。递归函数通常由两个主要部分组成:起始条件(或基线条件)和递归规则(或递归关系)。

1计算累加

起始条件:f(1) = 1

递归规则:f(n)= n +  f(n-1)

def factorial(n: Int): Int = {  

  if (n == 0) {  

    1 // 起始条件  

  } else {  

    n + factorial(n - 1) // 递归规则  

  }  

}
object sss013 {
  def f(n:Int):Int = {
    if(n == 1){
      1
  } else {
      f(n-1) + n
    }
  }
  def main(args:Array[String]): Unit ={
    val rst = f(4)
    println(rst)
  }
}

3整数的阶乘

起始条件:0! = 1

递归规则:n! = n * (n-1)!

def factorial(n: Int): Int = {  

  if (n == 0) {  

    1 // 起始条件  

  } else {  

    n * factorial(n - 1) // 递归规则  

  }  

}