题目:给定n个布尔变量x1,x2,x3…xn,希望输出所有可能的布尔变量组合。例如当n=2时,有4种组合:
a、true,true;b、true,faulse;c、faulse,true;d、faulse,faulse。请编写一个C++程序实现这个任务。
算法:递归
代码:
#include<iostream>
using namespace std;
bool a[1000];
int n;
void perm(int k)
{if(k==n+1){for(int i=1;i<=n;i++){if(i<n)cout<<boolalpha<<a[i]<<',';elsecout<<boolalpha<<a[i]<<endl;}return;}else{a[k]=true;perm(k+1);a[k]=false;perm(k+1);}
}
int main()
{while(cin>>n){perm(1);}return 0;
}