参考 http://www.cppblog.com/bennycen/archive/2011/03/28/142877.html
把一个整数拆分成大于0的整数之和,并且拆分方案不重复。
6
5 + 1
4 + 2, 4 + 1 + 1
3 + 3, 3 + 2 + 1, 3 + 1 + 1 + 1
2 + 2 + 2, 2 + 2 + 1 + 1, 2 + 1 + 1 + 1 + 1
1 + 1 + 1 + 1 + 1 + 1
这里,5+1和1+5是同一种分法。
共10种方案
方法1:
对于这种求不重复组合的问题,就是进行有序组合就行了,就是按照升序
int combine(int rem, int curr) {
if (rem == 0)
return 1;
int sum = 0;
for (;curr <= rem; ++curr)
s......
阅读全文