#include <iostream>
#include <list>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
list<int> dataList;
void find_factor(int sum,int n){
//递归出口
if(n<=0||sum<=0)
return ;
//输出找到的结果
if(sum==n){
dataList.reverse();
for(list<int>::iterator iter=dataList.begin();iter!=dataList.end();iter++){
cout<<*iter<<"+";
}
cout<<n<<endl;
dataList.reverse();
}
dataList.push_front(n);
find_factor(sum-n,n-1);
dataList.pop_front();
find_factor(sum,n-1);
}
int main(int argc, char** argv) {
int sum,n;
cout<<"请输入你要等于多少的数值sum:"<<endl;
cin>>sum;
cout<<"请输入你要从1。。。。n数列中取值的n:"<<endl;
cin>>n;
cout<<"所有可能的序列如下:"<<endl;
find_factor(sum,n);
return 0;
}
递归 寻找满足条件的多个数
最新推荐文章于 2022-02-11 14:12:03 发布