输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数,
使其和等于 m ,要求将其中所有的可能组合列出来
n小于m/2
点击(此处)折叠或打开
- vector<int> list1; //01背包问题
-
- void find_factor(int sum, int n)
- {
- if(n<=0||sum<0)
- {
- return;
- }
- if( sum==0 )
- {
- for(vector<int>::iterator iter=list1.begin(); iter<list1.end()-1; iter++)
- {
- cout<<*iter<<\"+\";
- }
- cout<<*iter++;
- cout<<endl; //后置++的运算符的优先级高于*
- return;
- }
- list1.push_back(n);
- find_factor(sum-n, n-1);
- list1.pop_back();
- find_factor(sum, n-1);
- }
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29012686/viewspace-1144537/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29012686/viewspace-1144537/