一道中兴笔试题

来源:互联网 发布:python数据采集 pdf 编辑:程序博客网 时间:2024/05/18 03:53

题目:输入两个整数n和m,从数列1,2,3...n中随意取几个数,使其和等于m,要求列出所有的组合。

#include <iostream>#include <list>using namespace std;list<int> list1;void find_factor(int sum,int n){//递归出口if(n<=0||sum<=0)return;//输出找到的数if(sum==n){list1.reverse();for(list<int>::iterator iter=list1.begin();iter!=list1.end();iter++)cout<<*iter<<"+";cout<<n<<endl;list1.reverse();}list1.push_front(n);find_factor(sum-n,n-1);//n放在里面list1.pop_front();find_factor(sum,n-1);//n不放在里面}int main(){int sum,n;cin>>sum>>n;cout<<"所有可能的序列,如下:"<<endl;find_factor(sum,n);return 0;}

参考:july的blog


原创粉丝点击