9种基本算法_递推

递推思想:利用某个已知的条件,利用特定关系逐步递推,直到得到结构。


顺推法:从已知条件出发,逐步推算出要解决问题的方法。例如:斐波那契数列

逆推法:从已知结果出发,用迭代表达式逐步推算出问题开始的条件。


实例:斐波那契数列(f(n) = f(n-1)+f(n-2))

兔子出生2个月后就具有繁殖能力,一对兔子每个月能生出一对小兔子。如果所有的兔子都不死,那么一年能繁殖对少对兔子。


分析:先在纸上推导,再画表格找规律,找到内在关系

月份:1    2    3     4    5    6  

兔子:1    2    3     5    8    13


int fun(int n)
{
    if(n == 0|| n == 1){
        return 1;
    }
    return fun(n - 1) + fun( n -2);
}

实例:斐波那契数列

母亲为儿子大学四年准备一笔存款,方式是整存零取,规定儿子每月月底取下个月生活费1000元。现在假设银行的利息为1.71%,计算母亲每月最少需要存入多少钱?

分析:第47月末存款 = 1000 / (1 + 0.0171 / 12)

           第46月末存款 = (1000 + 第47月末存款) / (1 + 0.0171 / 12)

           第45月末存款 = (1000 + 第46月末存款) / (1 + 0.0171 / 12)

float fun(int n)
{
    if(n == 48){
        return 1000.0;
    }
    return (fun(n +1) + 1000.0) / (1 + 0.0171 / 12);
}

总结:遇到问题想不清楚,先画图找规律,或者把问题先分解






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值