读书人

淘宝校园笔考试题

发布时间: 2012-06-21 13:42:41 作者: rapoo

淘宝校园笔试题
N个鸡蛋放到M个篮子中,篮子不能为空,要满足:对任意不大于N的数量,能用若干个篮子中鸡蛋的和表示。写出函数,对输入整数N和M,输出所有可能的鸡蛋的放法。

比如对于9个鸡蛋5个篮子
解至少有三组:
1 2 4 1 1
1 2 2 2 2
1 2 3 2 1


[解决办法]

探讨
算法思想:
递归调用,调用的时候注意在a[m]数组中有三个条件:a[0]=1,a[i]<=a[i+1],然后最后一个条件就是循环调用递归的条件a[i]取值必须在[(n-a[i+1]-a[i+2]-...-a[m-1])/2]取上天花板函数,假设计算这个数为k,那么a[i]就从k逐渐递减为1。
稍微说下代码:(这里用[]表示取上天花板函数)
egg(x, y, a){ //有x个鸡蛋,放入……

[解决办法]
http://blog.csdn.net/qq675927952/archive/2011/04/09/6312255.aspx

读书人网 >软件架构设计

热点推荐