函数循环调用

42 阅读1分钟
object Base45 {
  def f():Unit = {
    println("f.....被调用了")

    f()
  }

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

输出结果

image.png

递归函数:自己调用自己的函数适合用来解决一类问题

  1. 可以被分解为类似子问题
  2. 当分解到足够小的时候,问题可以直接求解
object fwh27 {
  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)
  }
}

image.png

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

起始条件:一个递归的终止条件,确保递归不会无限进行。它会直接返回结果。

递归规则:在这个部分,函数会调用自身,以解决一个更小的子问题。