2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > N个苹果分给M个人 有多少种分法

N个苹果分给M个人 有多少种分法

时间:2021-10-22 07:26:51

相关推荐

N个苹果分给M个人 有多少种分法

每次分配一个苹果出去,然后再分配N-1个苹果。这里有个注意的地方就是,分那1个苹果的时候,假设还有N个苹果,不是从第一个人开始分,而是从N+1个苹果分配的位置开始,不然的话会产生重复的解。所以i=p不是i=0。

List<Integer> result = Lists.newArrayList(0, 0, 0);@Test/*** N个苹果 M个人分*/public void testMN() {foo(3, 3, 0);}private void foo(int n, int m, int p) {if (n == 0) {System.out.println(result);return;}for (int i=p; i<m; i++) {result.set(i, result.get(i) + 1);foo(n-1, m, i);result.set(i, result.get(i) - 1);}}

output

[3, 0, 0]

[2, 1, 0]

[2, 0, 1]

[1, 2, 0]

[1, 1, 1]

[1, 0, 2]

[0, 3, 0]

[0, 2, 1]

[0, 1, 2]

[0, 0, 3]

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。