满足条件的两个数或多个数

来源:互联网 发布:迅雷9下载种子变php 编辑:程序博客网 时间:2024/06/05 04:36

主要参考:http://blog.csdn.net/v_JULY_v/article/details/6419466


2010年中兴面试题
编程求解:
输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,
使其和等于 m ,要求将其中所有的可能组合列出来。


对于每个数都要算下,放与不放的情况:


void Find(int t,int sum,list<int>& lst){if(sum ==0){list<int>::iterator it;for(it = lst.begin();it!=lst.end();++it)cout<<*it<<" ";cout<<endl;}if(t>sum)return;if(t+1<=sum)Find(t+1,sum,lst);if(t<=sum){lst.push_back(t);Find(t+1,sum - t,lst);lst.pop_back();}}int main(){list<int> lst;Find(1,6,lst);return 0;}