二进制枚举: 1代表开 代表不开
思路来源于: https://www.bilibili.com/video/BV1wK4y1S7Bd?from=search&seid=8750939626540753681
#include<cstdio>
#include<iostream>
using namespace std;
void print(int x)
{
char a[7][7]={" "," "," "};
for(int i=0;i<7;i++)
{
int temp=x>>i;
if(temp&1)
{
if(i==0) a[0][1]='_';
if(i==1) a[1][2]='|';
if(i==2) a[2][2]='|';
if(i==3) a[2][1]='_';
if(i==4) a[2][0]='|';
if(i==5) a[1][0]='|';
if(i==6) a[1][1]='_';
}
}
cout<<"第"<<x<<"种"<<endl;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
cout<<a[i][j];
}
cout<<endl;
}
cout<<"######################"<<endl;
}
int main(void)
{
for(int i=1;i<128;i++)
{
print(i);
}
return 0;
}