菜鸡打卡 蓝桥杯 算法训练 递归——l排队购票、买球票及买车票问题 经典递归问题

排队购票

在这里插入图片描述
显然这是一个递归问题 让人想到另一道蓝桥真题(忘了哪一年)那还是一道代码填空题(现在已经没有代码填空题)

买车票 售票问题

假设有m+n个人,其中m个人手持面额为5角的硬币,n人手持面额为1元的硬币,他们都要乘车买票,票价为5角。现假设售票员手 中无零钞,下面这个函数就可以算出m+n个人所有可能的买票情况(顺利完成购票过程的购票次序的种类数,请完善次函数)。
int f(int m,int n)
{
if (m<n) return 0; //持1元硬币的人 多于 持5角硬币的人,不可行。
if (n==0) teturn 1; //所有人均持5角硬币,一种购票方式。
return__________; //上持5角硬币,或持5角与持1元硬币同上
}

分析
这题显然就是一个递归 递归的基本框架都已写出,那么只要写出进行下一步递归的部分 模拟一个人上车,这个人可能是手持5角的硬币,也可能是手持1元的硬币,第一种情况下这个人是手持5角的直接上车,第二种情况下手持1元硬币的人和一个手持5角硬币的人一同上车,故答案为f(m-1,n)+f(m-1,n-1);

咳咳
回到正题啦

算法分析

用最简单粗暴的方式直接假设讨论<

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值