递归:一个函数在函数体内又调用的了本身
1.程序执行一个函数时,就创建一个新的受保护的独立空间
2.函数的局部变量是独立的,不会受影响的
3.递归必须向退出递归的条件逼近,否则将会无限循环
4.当一个函数执行完毕时,或者遇到return,就会返回,遵守谁调用,就将结果返回给谁
注意:当重复计算时,需要考虑优化 -> 迭代
println("-----------斐波那契-------------")
def fbnq(n:Int) : Int = {
if (n == 1 || n == 2) {
1
}else {
fbnq(n-1) + fbnq(n-2)
}
}
println(fbnq(3)) //2
println("-------猴子吃桃子----------")
/**
* 猴子每天吃所有桃子的一半加一个,到第十天发现只剩下一个桃子,那么第一天有几个桃子
* @param n 天数
* @return 桃子数量
*/
def houzi(n:Int): Int = {
if( n == 10) {
1
}else {
(houzi(n + 1) +