递归 放苹果

递归 放苹果

问题分析:

苹果有m个,盘子亦n个,设此时共有f ( m , n ) 种放法;

  1. 若此时m==1 || n==1,则此时只有一种放法;
  2. 若此时m < n,因为题中提到允许盘子空着不放,那么此时的苹果至多可以 放在n个盘子里,则此时有f ( m , m)中放法;
  3. 若此时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 代码:

递归 放苹果