递归函数意味着函数可以调用它本身。用递归实现阶乘:
object Test3{
def main(a: Array[String]){
for (i <-1 to 15)
println(i+"=>"+fab(i))
}
def fab( n:BigInt ): BigInt = {
if (n <=1)
1
else
n * fab(n-1)
}
}
编译执行
[root@node1 scala]# scalac Test3.scala
[root@node1 scala]# scala Test3
1=>1
2=>2
3=>6
4=>24
5=>120
6=>720
7=>5040
8=>40320
9=>362880
10=>3628800
11=>39916800
12=>479001600
13=>6227020800
14=>87178291200
15=>1307674368000
递归函数最关键的地方是设置好出口,就是什么时间结束递归,否则会立即陷入死循环。