对于固定数组0,1,2,3,4,5,6,7,8,9
输入布尔值0,1,1,1,1,1,1,1,1,0
0表示可选 1表示必选
#include<bits/stdc++.h> using namespace std; int a[10]; vector<vector<char> >vec; void process(int i,vector<char> v){ if(i ==10){vec.push_back(v);return ;} if(a[i] == 0){ process(i+1,v); } v.push_back((char)('0'+i)); process(i+1,v); } int main() { for(int i = 0;i<10;i++){ int tmp; cin>>tmp; a[i] = tmp; } vector<char> v; process(0,v); sort(vec.begin(),vec.end()); for(int i = 0;i<vec.size();i++){ for(int j = 0;j<vec[i].size();j++){ cout<<vec[i][j]; } cout<<endl; } }