一、题目
有一个人站在电影院门口卖票,票价50,一开始手上没有找零的钱,现在有两种人来买票,A拿着100元的钱,人数为m(m<20),B拿着50元的钱,人数为n(n<20)。卖票的人必须用从B类人中那里得来钱找给A,所以卖票的顺序是有限制的。
要求写一个程序打印出所有的买票序列:
例如:m =2 ,n = 3;
BABAB
BBAAB
BBBAA
BBABA
二、解法→递归法
1、思想
金句:涉及“状态转换和记录”的都可以用递归的方法求解
模拟 所有人买票的全过程,
变量假设
假设拿着100元钱的人A的人数有m 人,拿着50元钱的B的人数有n 人,
某一时刻已经买票的A有a 人,B有b 人
子问题
如果进来的一个人是A,需要判断条件 ①a<m且②a<b
如果进来的一个人是B,需要判断条件

本文介绍了一道关于电影票售卖的问题,其中涉及到用递归方法解决如何以特定顺序销售100元和50元票价的问题。当有m个持100元和n个持50元的人时,所有可能的购票序列通过递归算法进行模拟,并给出了一段C语言实现的代码示例。

974

被折叠的 条评论
为什么被折叠?



