📄 bool.cpp
字号:
#include<iostream>
#include<string>
using namespace std;
int main()
{
char str[100];
char stack1[100];
char stack2[100];
char wet[100][100];
char nibo[100];
char ayy[100];
char array[10][20];
char boss;
int v;
int D = 0;
int top3;
do
{ int top1 = 0;
int top2 = 0;
int i = 0, j = 0, t = 0, M = 0, Z = 0, v = 0, r = 1;
do
{
i++;
cin>>str[i];
}while( str[i] != '#' );
boss = str[1];
while( boss != '#' )
{
if( ( boss >= 'a' ) && ( boss <= 'e' ) )
{
int U = 0;
int B = j;
for( int I = 1; I <= B; I++ )
{
if( boss == nibo[I] )
{
j++;
nibo[j] = boss;
U++;
}
}
if( U == 0 )
{
t++;
j++;
nibo[j] = boss;
}
}
else if( boss == '(' )
{
top1++;
stack1[top1] = boss;
}
else if( ( boss == '!' ) || ( boss == '&' ) || ( boss == '|' ) )
{
top1++;
stack1[top1] = boss;
}
else if( boss == ')' )
{
while( stack1[top1] != '(' )
{
j++;
nibo[j] = stack1[top1];
top1--;
}
top1--;
}
r++;
boss = str[r];
}
while( top1 != 0 )
{
j++;
nibo[j] = stack1[top1];
top1--;
}
for( char h = '0'; h <= '1'; h++ )
{
for( char i = '0'; i <= '1'; i++ )
{
for( int y = 1; y <= j; y++ )
{
ayy[y] = nibo[y];
}
if( t <= 2 )
{
cout<<h<<" "<<i<<" ";
int k = 1;
for( int g = 1; g <= j; g++ )
{
if( ayy[g] >= 'a' && ayy[g] <= 'e' )
{
if( k == 1 )
{
ayy[g] = h;
k++;
}
else
ayy[g] = i;
top2++;
stack2[top2] = ayy[g];
}
else
{
boss = ayy[g];
switch( boss )
{
case '&' : {
if( ( stack2[top2] == '1' ) && ( stack2[top2-1] == '1' ) )
{
stack2[top2-1] = '1';
top2--;
}
else
{
stack2[top2-1] = '0';
top2--;
}
break;
}
case '|' : {
if( stack2[top2] == '1' || stack2[top2-1] == '1' )
{
stack2[top2-1] = '1';
top2--;
}
else
{
stack2[top2-1] = '0';
top2--;
}
break;
}
case '!' : {
if( stack2[top2] == '1' )
{
stack2[top2] = '0';
}
else
stack2[top2] = '1';
break;
}
}
}
}
v++;
array[D][v] = stack2[top2];
cout<<stack2[top2]<<endl;
top2--;
}
else
{
for( char l = '0'; l <= '1'; l++ )
{
for( int x = 1; x <= j; x++ )
{
ayy[x] = nibo[x];
}
if( t <= 3 )
{
cout<<h<<" "<<i<<" "<<l<<" ";
int w = 1;
for( int u = 1; u <= j; u++ )
{
if( ( ayy[u] >= 'a' ) && ( ayy[u] <= 'e' ) )
{
if( w == 1 )
{
ayy[u] = h;
w++;
}
else if( w == 2 )
{
int K = 0;
while( top3 != 0 )
{
if( ayy[u] == wet[top3][1] )
{
if( top3 == 1 )
{
ayy[u] = h;
}
else if( top3 == 2 )
{
ayy[u] = i;
}
else
{
ayy[u] = l;
}
K++;
break;
}
top3--;
}
if( K == 0 )
{
ayy[u] = i;
w++;
}
}
else
{
int K = 0;
while( top3 != 0 )
{
if( ayy[u] == wet[top3][1] )
{
if( top3 == 1 )
{
ayy[u] = h;
}
else if( top3 == 2 )
{
ayy[u] = i;
}
else
{
ayy[u] = l;
}
K++;
break;
}
top3--;
}
if( K == 0 )
{
ayy[u] = l;
}
}
top2++;
top3 = top2;
stack2[top2] = ayy[u];
wet[top3][1] = ayy[u];
}
else
{
boss = ayy[u];
switch( boss )
{
case '&' : {
if( ( stack2[top2] == '1' ) && ( stack2[top2-1] == '1' ) )
{
stack2[top2-1] = '1';
top2--;
}
else
{
stack2[top2-1] = '0';
top2--;
}
break;
}
case '|' : {
if( ( stack2[top2] == '1' ) || ( stack2[top2-1] == '1' ) )
{
stack2[top2-1] = '1';
top2--;
}
else
{
stack2[top2-1] = '0';
top2--;
}
break;
}
case '!' : {
if( stack2[top2] == '1' )
{
stack2[top2] = '0';
}
else
stack2[top2] = '1';
break;
}
}
}
}
v++;
array[D][v] = stack2[top2];
cout<<stack2[top2]<<endl;
top2--;
}
else
{
for( char m = '0'; m <= '1'; m++ )
{
for( int f = 1; f <= j; f++ )
{
ayy[f] = nibo[f];
}
if( t <= 4 )
{
cout<<h<<" "<<i<<" "<<l<<" "<<m<<" ";
int P = 1;
for( int B = 1; B <= j; B++ )
{
if( ayy[B] >= 'a' && ayy[B] <= 'e' )
{
if( P == 1 )
{
ayy[B] = h;
P++;
}
else if( P == 2 )
{
int K = 0;
while( top3 != 0 )
{
if( ayy[B] == wet[top3][1] )
{
if( top3 == 1 )
{
ayy[B] = h;
}
else if( top3 == 2 )
{
ayy[B] = i;
}
else if( top3 == 3 )
{
ayy[B] = l;
}
else
{
ayy[B] = m;
}
K++;
break;
}
top3--;
}
if( K == 0 )
{
ayy[B] = i;
P++;
}
}
else if( P == 3 )
{
int K = 0;
while( top3 != 0 )
{
if( ayy[B] == wet[top3][1] )
{
if( top3 == 1 )
{
ayy[B] = h;
}
else if( top3 == 2 )
{
ayy[B] = i;
}
else if( top3 == 3 )
{
ayy[B] = l;
}
else
{
ayy[B] = m;
}
K++;
break;
}
top3--;
}
if( K == 0 )
{
ayy[B] = l;
P++;
}
}
else
{
int K = 0;
while( top3 != 0 )
{
if( ayy[B] == wet[top3][1] )
{
if( top3 == 1 )
{
ayy[B] = h;
}
else if( top3 == 2 )
{
ayy[B] = i;
}
else if( top3 == 3 )
{
ayy[B] = l;
}
else
{
ayy[B] = m;
}
K++;
break;
}
top3--;
}
if( K == 0)
{
ayy[B] = m;
}
}
top2++;
top3 = top2;
stack2[top2] = ayy[B];
wet[top3][1] = ayy[B];
}
else
{
boss = ayy[B];
switch( boss )
{
case '&' : {
if( stack2[top2] == '1' && stack2[top2-1] == '1' )
{
stack2[top2-1] = '1';
top2--;
}
else
{
stack2[top2-1] = '0';
top2--;
}
break;
}
case '|' : {
if( stack2[top2] == '1' || stack2[top2-1] == '1' )
{
stack2[top2-1] = '1';
top2--;
}
else
{
stack2[top2-1] = '0';
top2--;
}
break;
}
case '!' : {
if( stack2[top2] == '1' )
{
stack2[top2] = '0';
}
else
stack2[top2] = '1';
break;
}
}
}
}
v++;
array[D][v] = stack2[top2];
cout<<stack2[top2]<<endl;
top2--;
}
else
{
for( char n = '0'; n <= '1'; n++ )
{
for( int d = 1; d <= j; d++ )
{
ayy[d] = nibo[d];
}
if( t <= 5 )
{
cout<<h<<" "<<i<<" "<<l<<" "<<m<<" "<<n<<" ";
int V = 1;
for( int C = 0; C <= j; C++ )
{
if( ayy[C] >= 'a' && ayy[C] <= 'e' )
{
if( V == 1 )
{
ayy[C] = h;
V++;
}
else if( V == 2 )
{
ayy[C] = i;
V++;
}
else if( V == 3 )
{
ayy[C] = l;
V++;
}
else if( V == 4 )
{
ayy[C] = m;
V++;
}
else
ayy[C] = n;
top2++;
stack2[top2] = ayy[C];
}
else
{
boss = ayy[C];
switch( boss )
{
case '&' : {
if( stack2[top2] == '1' && stack2[top2-1] == '1' )
{
stack2[top2-1] = '1';
top2--;
}
else
{
stack2[top2-1] = '0';
top2--;
}
break;
}
case '|' : {
if( stack2[top2] == '1' || stack2[top2-1] == '1' )
{
stack2[top2-1] = '1';
top2--;
}
else
{
stack2[top2-1] = '0';
top2--;
}
break;
}
case '!' : {
if( stack2[top2] == '1' )
{
stack2[top2] = '0';
}
else
stack2[top2] = '1';
break;
}
}
}
}
v++;
array[D][v] = stack2[top2];
cout<<stack2[top2]<<endl;
top2--;
}
}
}
}
}
}
}
}
}
D++;
}while( D == 1 );
int Y = 0;
for( int J = 1; J <= v; J++ )
{
if( array[0][J] != array[1][J] )
{
Y++;
}
}
if( Y == 0 )
{
cout<<"Equal!"<<endl;
}
else
cout<<"Not equal!"<<endl;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -