输入两个整数n和sum,从数列1,2,3.......n 中随意取几个数,使其和等于sum,要求将其中所有的可能组合列出来。
list<int> mylist;
void SumOfkNumber(int sum, int n) {
if (sum <= 0 || n <= 0) {
return;
}
if (sum == n) {
for (list<int>::iterator i = mylist.begin(); i != mylist.end(); i++) {
cout << *i << "+";
}
cout << n << endl;
}
mylist.push_back(n);
SumOfkNumber(sum - n, n - 1);
mylist.pop_back();
SumOfkNumber(sum, n - 1);
}