【问题描述】
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
【输入】
输入文件名为apple.in。
输入共一行,包含两个整数M和N。
【输出】
输出文件名为apple.out。
输出共一行,包含一个整数,即分法的种数。
解:
这道题可用递归实现。将m个苹果装进n个篮子里,可先确定第一个篮子可装苹果数量i,范围为1到n。之后,问题就可化为将m—i苹果个装进n-1个篮子里,以此类推。当最后化为分配m=0个苹果或n=1个篮子时即可返回。其中定义一个全局变量a数组和分法总数s,每确定一个篮子的苹果数就记录在数组中,当化为分配m=0个苹果或n=1个篮子时就将a数组各项之和加起来看与最初的m是否相等且后一项是否比前一项小,从而判断是否s加1。