📄 1114.cpp
字号:
#include <iostream.h>
#include <string.h>
char a[2][105];
int aa[2][677],n,i,j,la,lb,p1,p2;
bool ok;
void add2(int st,int en,int nnn,int ll)
{
int i,p,n,nn,p1,p2,t;
i=st;nn=0;
if (a[ll][i]>'9' || a[ll][i]<'0')
nn=1;
else
while (a[ll][i]>='0' && a[ll][i]<='9')
{
nn=nn*10+a[ll][i]-'0';
i++;
}
p=-1;
while (i<=en)
{
if (a[ll][i]>='A' && a[ll][i]<='Z')
{
if (p!=-1)
{
aa[ll][p]+=nn*nnn;
p=-1;
}
p=a[ll][i]-'A';
}
if (a[ll][i]>='a' && a[ll][i]<='z')
p=p*26+a[ll][i]-'a';
if (a[ll][i]>='0' && a[ll][i]<='9')
{
n=0;
while (a[ll][i]>='0' && a[ll][i]<='9' && i<=en)
{
n=n*10+a[ll][i]-'0';
i++;
}
aa[ll][p]+=n*nn*nnn;i--;p=-1;
}
if (a[ll][i]=='(')
{
if (p!=-1)
{
aa[ll][p]+=nn*nnn;
p=-1;
}
p1=i+1;t=0;
i++;
while (a[ll][i]!=')' || t!=0)
{
if (a[ll][i]=='(')
t++;
if (a[ll][i]==')')
t--;
i++;
}
p2=i-1;i++;
if (a[ll][i]>='0' && a[ll][i]<='9')
{
n=0;
while (a[ll][i]>='0' && a[ll][i]<='9' && i<=en)
{
n=n*10+a[ll][i]-'0';
i++;
}
}
else
n=1;
add2(p1,p2,n*nn*nnn,ll);
i--;
}
i++;
}
if (p!=-1)
aa[ll][p]+=nn*nnn;
}
void add1(int st,int en,int ll)
{
int i,p,n,nn,p1,p2,t;
i=st;nn=0;
if (a[ll][i]>'9' || a[ll][i]<'0')
nn=1;
else
while (a[ll][i]>='0' && a[ll][i]<='9')
{
nn=nn*10+a[ll][i]-'0';
i++;
}
p=-1;
while (i<=en)
{
if (a[ll][i]>='A' && a[ll][i]<='Z')
{
if (p!=-1)
{
aa[ll][p]+=nn;
p=-1;
}
p=a[ll][i]-'A';
}
if (a[ll][i]>='a' && a[ll][i]<='z')
p=p*26+a[ll][i]-'a';
if (a[ll][i]>='0' && a[ll][i]<='9')
{
n=0;
while (a[ll][i]>='0' && a[ll][i]<='9' && i<=en)
{
n=n*10+a[ll][i]-'0';
i++;
}
aa[ll][p]+=n*nn;i--;p=-1;
}
if (a[ll][i]=='(')
{
if (p!=-1)
{
aa[ll][p]+=nn;
p=-1;
}
p1=i+1;t=0;
i++;
while (a[ll][i]!=')' || t!=0)
{
if (a[ll][i]=='(')
t++;
if (a[ll][i]==')')
t--;
i++;
}
p2=i-1;i++;
if (a[ll][i]>='0' && a[ll][i]<='9')
{
n=0;
while (a[ll][i]>='0' && a[ll][i]<='9' && i<=en)
{
n=n*10+a[ll][i]-'0';
i++;
}
}
else
n=1;
add2(p1,p2,n*nn,ll);
i--;
}
i++;
}
if (p!=-1)
aa[ll][p]+=nn;
}
int main()
{
cin>>a[0];
la=strlen(a[0])-1;
p1=0;p2=0;
while (p2<=la)
{
while (p2<=la && a[0][p2]!='+')
p2++;
add1(p1,p2-1,0);
p1=p2+1;p2++;
}
cin>>n;
for (i=1;i<=n;i++)
{
for (j=0;j<=676;j++)
aa[1][j]=0;
cin>>a[1];
lb=strlen(a[1])-1;
p1=0;p2=0;
while (p2<=lb)
{
while (p2<=lb && a[1][p2]!='+')
p2++;
add1(p1,p2-1,1);
p1=p2+1;p2++;
}
ok=1;
for (j=0;j<=676;j++)
if (aa[0][j]!=aa[1][j])
{
ok=0;
break;
}
if (ok)
cout<<a[0]<<"=="<<a[1]<<"\n";
else
cout<<a[0]<<"!="<<a[1]<<"\n";
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -