题目:给定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]<<',';
else
cout<<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;
}