递归函数设计技巧

1. 拿起武器:数学归纳法

Step1:验证p(1)成立

Step2:证明如果p(k)成立,那么p(k+1)也成立

Step3:联合Step1 与 Step2,证明由 p(1)--->p(n) 成立

例如:证明 1 + 3 + 5 + 7 +......+ (2n -  1) = n^2

第一步:证明p(1) :   p(1) = 1 = 1^2

第二步:假设p(k)正确------>证明p(k+1)

        p(n-1) = (n-1)^2             p(n) = p(n-1)+(2n-1) = (n-1)^2+(2n-1) = n^2

第三步:证毕p(n)正确

2. 递归函数设计的三个重要部分

1. 重要:给 递归函数 一个明确的语义信息

2. 实现边界条件的逻辑程序

3. 假设递归函数调用返回结果是正确的,实现本层函数逻辑

3. 学以致用:递归求阶乘

int f(int n) { // f(n)代表n的阶乘的结果
    if (n == 1) { // 边界条件
        return 1;
    }
    return f(n - 1) * n; // 利用f(n - 1)的值,计算f(n)的值 (n - 1)! * n 
}

4. 习题

(1) 路飞吃桃

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值