/** * 递归函数 : 在函数中再次调用自己 * 注意:容易产生死循环 * * 适用于解决: 能把大问题,拆分成小问题的问题 **/
object DIGUI { // 1. 求 1 + 2 + 3 +........ + n-1 + n 。 记为f(n) 表示1-n的和。 // 2. f(n) = 1 + 2 + 3 +.... n-1 + n // (1)基本情况。 可以直接求解,避免死循环。 f(1)=1 // (2)递归情况。大事化小,递归求解。 f(n) = f(n-1) + n // getSum(n) 计算1-n的和 def getSum(n : Int):Int={ if (n==1){ 1 } else { getSum(n-1)+n } } def main(args: Array[String]): Unit = { val s = getSum(3) // 6 println(s) } }