N个苹果分给M个人,有多少种分法
生活随笔
收集整理的這篇文章主要介紹了
N个苹果分给M个人,有多少种分法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
每次分配一個(gè)蘋果出去,然后再分配N-1個(gè)蘋果。這里有個(gè)注意的地方就是,分那1個(gè)蘋果的時(shí)候,假設(shè)還有N個(gè)蘋果,不是從第一個(gè)人開始分,而是從N+1個(gè)蘋果分配的位置開始,不然的話會(huì)產(chǎn)生重復(fù)的解。所以i=p不是i=0。
?
List<Integer> result = Lists.newArrayList(0, 0, 0);@Test /*** N個(gè)蘋果 M個(gè)人分*/ 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]
轉(zhuǎn)載于:https://www.cnblogs.com/23lalala/p/5609788.html
總結(jié)
以上是生活随笔為你收集整理的N个苹果分给M个人,有多少种分法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mutt电子邮件的使用
- 下一篇: 软件测试 实验一 软件测试案例分析