排队购票
显然这是一个递归问题 让人想到另一道蓝桥真题(忘了哪一年)那还是一道代码填空题(现在已经没有代码填空题)
买车票 售票问题
假设有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);
咳咳
回到正题啦
算法分析
用最简单粗暴的方式直接假设讨论<