1.求和
def sum(num: Int): Int = if (num == 1) 1 else num + sum(num - 1)
2.求最大值
def max(list: List[Int]): Int = { if (list.size == 1) { list.head } else { if (list.head > max(list.tail)) list.head else max(list.tail) } }
3.反转字符串
def reverse(str: String): String = { if (str.length == 1) str else reverse(str.tail) + str.head }
4.求阶乘
def factorial(num: Int): BigInt = { if (num == 1) num else num * factorial(num - 1) }
5.求斐波那契数列。
def fibonacci(num: Int): Int = { if (num == 1 || num == 2) 1 else fibonacci(num - 1) + fibonacci(num - 2) }
在例2和例5中,由于存在重复递归,效率很低。