你做乘法操作时最好不要直接把其中字符减去64.因为它毕竟不是字符数组,for循环里面虽然几个语句连成了一行,但是也要用分号分割。
AC代码例:
```c++
#include <bits/stdc++.h>
using namespace std;
const int mod=47;
string a,b;
int main()
{
cin>>a>>b;
int n=a.size();
int m=b.size();
long long cnt1=1,cnt2=1;
for(int i=1;i<=n;i++)
cnt1*=(a[i]-64);cnt1%=mod;
for(int i=1;i<=m;i++)
cnt2*=b[i];cnt2%=mod;
if(cnt1==cnt2)
cout<<"GO"<<endl;
else
cout<<"STAY"<<endl;
return 0;
}
```
by buzhidao0123 @ 2023-09-11 21:15:29
@[buzhidao0123](/user/920406)
```c++
#include <bits/stdc++.h>
using namespace std;
const int mod=47;
string a,b;
int main()
{
cin>>a>>b;
int n=a.size();
int m=b.size();
long long cnt1=1,cnt2=1;
for(int i=1;i<=n;i++)
cnt1*=a[i]-64,cnt1%=mod;
for(int i=1;i<=m;i++)
cnt2*=b[i]-64;cnt2%=mod;
if(cnt1==cnt2)
cout<<"GO"<<endl;
else
cout<<"STAY"<<endl;
return 0;
}
```
by buzhidao0123 @ 2023-09-11 21:17:47
@[buzhidao0123](/user/920406) cnt2%=mod;這一步是幹嘛用的
by IMPOSTORrrrrrr @ 2023-09-11 21:32:38
@[buzhidao0123](/user/920406) 我是想边乘边模,我又想代码简洁,就把大括号去掉,用了逗号表达式嘛……
__—_—__
by Orange0628 @ 2023-09-12 06:44:05
@[buzhidao0123](/user/920406) "cnt2*=b[i];cnt2%=mod;"试问你这句代码啥意思
by Orange0628 @ 2023-09-12 06:48:41
@[buzhidao0123](/user/920406) sorry,我发现是初始和停止的问题,应该从0到n(m)-1,现已AC,已关注
by Orange0628 @ 2023-09-12 06:57:54