/**
* 递归函数:在函数再次内部调用自己
* 解决可以被分解为类似子问题的问题
* 组成:
* 1.基本情况。最小问题的答案
* 2.递归情况。调用自己去解决子问题
*/
object TestFucRecursive {
// def fn():Unit={
// println("fn...")
// fn()
// }
// def sum(n:Int):Int={
// var s=0
// for(i<-1 to n){
// s+=1
// }
// s
// }
//定义一个递归函数,求1-n的和
// def sum(n:Int):Int ={
// println(n)
// //1.基本情况:最小问题,直接给答案,阻止死循环
// if(n==1){
// 1
// }
// else {
// //2.递归情况:再次调用自己去解决子情况
// return n+sum(n-1)
// }
// }
//定义一个函数,求1*2*3*4*...*n
def mul(n: Int): Int = {
if (n == 0) {
1
} else {
mul(n - 1) * n
}
}
def main(args: Array[String]): Unit = {
var s = mul(5)//5*4*3*2*1 = 120
println(s)
}
}
Scala递归函数
最新推荐文章于 2024-10-17 10:45:57 发布