/*我的想法是分别取出i(1<i<n)个盒子数,苹果每次都要把盒子填满,
这样就相当于罗列出了有1-n个空盒子的情况,而填满盒子的做法就是每个盒子
起码有一个苹果,就是m-i ;此时剩下m-i个苹果,放在i个盒子,跟开始的情况一样,所以重复,用递归。*/
public class S
{
int sum;
public static void main(String []args)
{
S s=new S();
s.listAll(4,2);
System.out.println(s.sum);
}
public void listAll(int m ,int n)
{
for(int i=1;i<=n;i++){
if(m>i)
{
listAll(m-i,i);
}
if(m==i) //此时盒子数和苹果数相等,意味着苹果排列完,算一种情况,所以加1
this.sum++;
if(m<i) //取出盒子数大于苹果数,不可以每个盒子都放一个苹果,所以返回,换另一种情况
return ;
}
}
}
m盒子放n苹果 简单代码
需积分: 16 132 浏览量
2008-12-27
22:16:30
上传
评论
收藏 596B RAR 举报
ccc_moriya
- 粉丝: 1
- 资源: 4