问题分析:
苹果有m个,盘子亦n个,设此时共有f ( m , n ) 种放法;
- 若此时m==1 || n==1,则此时只有一种放法;
- 若此时m < n,因为题中提到允许盘子空着不放,那么此时的苹果至多可以 放在n个盘子里,则此时有f ( m , m)中放法;
- 若此时m >= n;这时可以分为3种情况 1. 若此时有一个盘子为空,那么f( m ,n )=f(m , n-1 ); 2.若此时有两个或三个以上的盘子为空呐,如果此时又两个盘子为空的话,则此时一定是在有一个空盘子问题解决的情况 下才会成立的,那么f(m , n-1) = f(m , n-2),依次类推; 3.若此时没有空盘子的话,说明每个盘子中至少有一个苹果,则此时还剩下m-n个苹果,那么问题就转换成了在n个盘子中放m-n 个苹果有多少种方法的问题,f(m-n,n)
经过以上分析可得:
ac 代码: