#include <bits/stdc++.h>
using namespace std;
//说社么暴力啊,不就是dfs吗,怼你
int a[7]={10,22,4,3,5,6,9};
int n=7;
vector<int>v;
int cnt=0;
//rest--剩余的元素个数
//index--当前可以选择的起始下标,开始从index=0开始
void dfs(int rest,int index)
{
if(index==n&&rest!=0)
{
return ;
}
if(rest==0)
{
cnt++;
for(auto i:v)
{
cout <<i<<" ";
}
cout <<endl;
}
else
{
dfs(rest,index+1);//要么选第index个元素,要么不选第index个元素
v.push_back(a[index]);
dfs(rest-1,index+1);
v.pop_back();
}
}
int main(void)
{
dfs(2,0);
cout <<"总数为:"<<cnt<<endl;
return 0;
}
或者以下写法
#include <bits/stdc++.h>
using namespace std;
//说社么暴力啊,不就是dfs吗,怼你嘿嘿
int a[7]