这道题可以用动态规划来解,也可以递归来做。
递归:
(m,n)代表m个苹果分在n个盘子里的分法,这里分三种情况:
- 没有苹果或只有一个盘子时,(m=0||n==1)只有一种分法。
- 第二种是苹果的数量小于盘子的数量(m<n),这时候的分法等于(m,n)=(m,m),就像3个苹果分在5个盘子里的分法等于3个苹果在3个盘子的分法;
- 第三种情况是苹果的数量大于等于盘子的数量,这里可以拿有没有盘子进行讨论:
如果没有空盘子,那每个盘子减去一个苹果和不减去一个苹果的分法是一样的,即(m,n)=(m-n,n)。就像7个苹果分3个盘子里,如果没有空盘子,那么三个盘子的苹果为1+x,1+y,1+z。这里面x+y+z=4。这就相当于4个苹果在3个盘子里面分,即(m,n)=(m-n,n)。
有空盘子时,(m,n)=(m,n-1),每次递归的时候就减少一个盘子来算,比如,5个苹果放3个盘子里,如果有空盘子,这