Swift--递归是什么

老说递归,感觉很难的样子,其实就是一道数学题,看代码:

                func getNumber(n:Int)->Int{
                    if 0 > n{
                        return 0
                    }
                    
                    if n == 1{
                        return 1
                    }
                    
                    if n == 2{
                        return 2
                    }
                    
                    if n > 2{
                        return getNumber(n: n-1) + getNumber(n: n - 2)
                    }
                    
                    return 0
                }
                
                let number = getNumber(n: 9)
                print(number)
                
//其实分解出来就是这么个公式()
f9 = f8 + f7
f8 = f7 + f6
f7 = f6 + f5
f6 = f5 + f4
f5 = f4 + f3
f4 = f3 + 2                 //f2 == 2 因为 n = 2, return 2
f3 = f2 + f1 = 2+1 = 3      

f3 = 3
f4 = 5
f5 = 8
f6 = 13
f7 = 21
f8 = 34
f9 = 55                      //number = 55 正解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值