输入两个整数n和m,从数列1,2,3.......n中随意取几个数,
使其和等于m,要求将其中所有的可能组合列出来.
#include <iostream> #include <vector> using namespace std; int Sum(vector<int> v) { int sum = 0; for(int i = 0;i<v.size();i++) sum+=v[i]; return sum; } void print(vector<int> v) { for(int i = 0;i<v.size();i++) cout<<v[i]<<" "; cout<<endl; } vector<int> v; int sum = 8; int len = 9; void find(int* arr,int index) { if(index>len) return ; if(Sum(v)==sum) { print(v); return ; } v.push_back(arr[index]); find(arr,index+1); v.pop_back(); find(arr,index+1); } void main() { int arr[]={1,2,3,4,5,6,7,8,9}; find(arr,0); }
2010年中兴面试题
最新推荐文章于 2013-04-14 22:05:02 发布