10月20

35 阅读1分钟
  1. **函数f(a: Int, n: Int): Int**该函数通过递归方式计算an次方,核心逻辑为:

    • 递归终止条件:当n == 0时,返回1(任何数的 0 次方都为 1)。
    • 递归逻辑:当n > 0时,a的n次方 = a * a的(n-1)次方,即a * f(a, n-1)
  2. **主函数main**调用f(2, 3)计算2的3次方,结果为8,并通过println输出。

object base41 {
  /*
   * 写函数,完成功能:计算a的n次方
   * f(a,n)=a * f(a, n-1)
   */
  def f(a:Int, n:Int): Int = {
    if(n == 0){
      1
    } else {
      a * f(a, n - 1)
    }
  }

  def main(args: Array[String]): Unit = {
    val s = f(2,3)
    println(s)// 8
  }
}
object base42 {
  /*
   * 汉诺塔游戏
   *
   */
  // A: 起点,C表示终点,B表示可以借用的柱子
  def f(n: Int, A: String, C: String, B: String): Unit = {
    if (n == 1) {
      println(s"${A} -> ${C}")
    } else {
      f(n - 1, A, B, C)
      println(s"${A} -> ${C}")
      f(n-1,B,C,A)
    }
  }

  def main(args: Array[String]): Unit = {
    f(5, "A", "C", "B")
  }
}