题目:m个人分n个苹果,按分得个数排序前后相邻2个人最多相差3个,每个人最少分得1个,问有几种分法?
普通版的分苹果问题:
M个同样的苹果分在N个同样的篮子里,允许有篮子空着不放,求一共有多少种不同的分法。
说明,3,1,1和1,3,1是一种分法;篮子可以放入的苹果数量没有最大限制。
递归解法:
1 | def share(apple, basket): |
和本题有一定的相似,但没找到递归或动态规划的思路。
以下是一种不太好的解法:
1 | # coding=utf8 |
示例输出:
1 | 2 4 |