问题很明显啊,我一测就出来了
你看样例输入,是可以输入1~6个字符的字符串,不一定非得是5个的或者6个的
比如说输入
AB
B
也完全可以。所以这边的for循环使用有误
by 天下第一! @ 2017-10-07 11:22:10
@[天下第一!](/space/show?uid=54101) #include<iostream>
```cpp
using namespace std;
int main(){
char xiaozu[7],feidie[7],suma=0,sumb=0;
long long xiaozuji=1,feidieji=1;
for(int i=1;i<=6;i++){
cin>>feidie[i];
if(feidie[i]<65||feidie[i]>90)break;
else suma+=1;
}
for(int i=1;i<=6;i++){
cin>>xiaozu[i];
if(xiaozu[i]<65||xiaozu[i]>90)break;
else sumb+=1;
}
for(int i=1;i<=suma;i++){
feidieji=feidieji*(feidie[i]-64);
}
for(int i=1;i<=sumb;i++){
xiaozuji=xiaozuji*(xiaozu[i]-64);
}
if((xiaozuji%47)==(feidieji%47))cout<<"GO";
else cout<<"STAY";
return 0;
}
能帮我看一下吗,60分?
```
by UKE自动机 @ 2017-10-07 11:23:21
我给你换一个for循环:
首先是int len1=strlen(yhy1)
int len2=strlen(yhy2)
这两个是计算两个字符串分别的长度,这样就不会搞错
for(int i=1;i<=len1;i++)……
for(int i=1;i<=len2;i++)……
附上我自己的正解:
```cpp
#include<bits/stdc++.h>
using namespace std;
char s1[100],s2[100];
int main(){
int ss1=1,ss2=1;
cin>>s1>>s2;
int len1=strlen(s1),len2=strlen(s2);
for(int i=0;i<len1;i++){
ss1*=s1[i]-64;
}
for(int i=0;i<len2;i++){
ss2*=s2[i]-64;
}
int ssr1=ss1%47,ssr2=ss2%47;
if(ssr1==ssr2){
cout<<"GO"<<endl;
}
else{
cout<<"STAY"<<endl;
}
return 0;
}
```
by 天下第一! @ 2017-10-07 11:26:15
@[jiangzizhan0508](/space/show?uid=51171) 这个题解我帮你测试一下,等会
by 天下第一! @ 2017-10-07 11:26:49
@[jiangzizhan0508](/space/show?uid=51171) 跟他的问题一模一样,不能只能是6个长度的字符串,要测试他的长度有多少来下定义。题解参照上面我给楼主的题解自己修改一下。
by 天下第一! @ 2017-10-07 11:28:17
@[天下第一!](/space/show?uid=54101) 好的,谢谢!我想到过这个问题,以为改掉了
by UKE自动机 @ 2017-10-07 11:30:07
@[天下第一!](/space/show?uid=54101) 我不太懂字符串
by UKE自动机 @ 2017-10-07 11:30:39
@[jiangzizhan0508](/space/show?uid=51171) strlen(x)就是x这个字符串的长度。不用谢。(我也是个蒟蒻)(手动滑稽)
by 天下第一! @ 2017-10-07 11:32:57
唔、
本蒟蒻用pas写的(太久之前的题目了)
by VenusM1nT @ 2017-10-07 13:23:08
我用Pascal语言写的,能告诉我为什么只有50分吗?
```cpp
var b:array['A'..'Z'] of longint;
a:array[1..2] of longint;
i,j:longint;
ch:string;
begin
a[1]:=1;
a[2]:=1;
for i:=1 to 26 do
b[chr(i+64)]:=i;
for i:=1 to 2 do
begin
readln(ch);
for j:=1 to length(ch) do
a[i]:=a[i]*b[ch[j]] mod 47;
end;
if a[1]=a[2] then writeln('Go')
else writeln('STAY');
end.
```
by 国服最强关羽 @ 2017-10-21 20:47:56