一个关于递归的问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 17:34:18
给定n个布尔变量x1、…、xn,打印其所有取值组合。用递归算法求解此问题。最好是用c++写

谢谢!!

#include <iostream>
#include <vector>

using namespace std;

int const n = 16;
vector <bool> vec(n);

void display_val(int num) {
for (int i = 0; i < num && i < n; ++i) {
count << vec[i] << " ";
}
count << endl;
}

void process(int k, int num) {
if(k >= n || k >= num) {
display_val(num);
return;
}
vec[k] = true;
process(k + 1, num);
vec[k] = false;
process(k + 1, num);
}
int main() {
int num;
while (cin >> num) {
if(num >= n) {
continue;
}
process(0, num);
}
}

随手写的,没有编译过。思想应该是对的。