递归


1、递归

def fact(n: Int): Int = {
      if (n == 0) return 1
      return fact(n - 1) * n
    }
println(fact(5))

2、尾递归

def tailFact(n: Int): Int ={
      //如果是尾递归加入@tailrec注解不会报错
      @tailrec
      def loop(n: Int, result: Int): Int = {
        if (n == 0) return result
        loop(n - 1, result * n)
      }
      loop(n, 1)
    }
    println(tailFact(5))