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