#include<stdio.h>
int main()
{
char ch;
int result1=1,result2=1;
while(1)
{
ch=getchar();
if(ch=='\n'||ch=='\r')
break;
else
result1=result1*(ch-'A'+1);
}
result1%=47;
while(1)
{
ch=getchar();
//printf("%c",ch);
if(ch=='\n'||ch=='\r')
break;
else
result2=result2*(ch-'A'+1);
}
result2%=47;
if(result2==result1)
printf("GO");
else
printf("STAY");
return 0;
}
这道题,我的代码,一直是60分,上不去,看了几遍,也不知道哪里错了。然后,脑子一抽觉得在第一个循环过后应该吸收回车符,就加上了一个getchar().但是后面怎么想怎么不对。应该了吸收了回车才能跳出才对啊,于是在本机上测试了一下,发现确实如此,AC的代码如下
#include<stdio.h>
int main()
{
char ch;
int result1=1,result2=1;
while(1)
{
ch=getchar();
if(ch=='\n'||ch=='\r')
break;
else
result1=result1*(ch-'A'+1);
}
result1%=47;
getchar();//吸收‘\n’符。。。。。。。。。。。。。。。。。。
while(1)
{
ch=getchar();
//printf("%c",ch);
if(ch=='\n'||ch=='\r')
break;
else
result2=result2*(ch-'A'+1);
}
result2%=47;
if(result2==result1)
printf("GO");
else
printf("STAY");
return 0;
}
试过这段代码,发现,他连题目提供的两个例子都算错了,但是为什么会AC呢。。