递归的理解和题目

一.寻找递归要素:
1.明确自己设定的函数要做什么;
2.寻找递归结束的条件;
3.确定关系等价式;

例题:

G (vjudge.net)icon-default.png?t=M85Bhttps://vjudge.net/contest/520346/problemPrint/G首先我们可以发现当n<4的时候,n为多少方案就为多少;所以n<4作为一个出口;

当n>=4时,我们这样考虑:当第一个铺的是竖直的骨牌,那么接下来还剩有n-1个骨牌,就有n-1个结果;反之,当第一个铺的是平放的骨牌,那么肯定还要有一个平放的骨牌一起搭配,所以刚开始需要两个骨牌,那么接下来还剩有n-2个骨牌,有n-2个结果;总的来说:f(n-1)+f(n-2);

所以代码如下:

 其中可以开数组优化!!而且记得数据过大时要用long long!!

并且多组数据输入时,可以用while(cin>>n){.....}

/

也可以用递归算杨辉三角在那个位置的值:

 这个代码还有待优化。。

///

青蛙跳台阶,斐波那契数列同样可以;

 那么我们可以分青蛙跳台阶为两部分,第一部分是跳了1;第二部分是跳了2;

当跳了1时,还剩下n-1个台阶,当跳了2,还剩n-2个台阶,所以总的跳台阶方案就是f(n-1)+f(n-2)

所以说递归问题找关系等价式可以分类讨论(即分情况讨论);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值