模拟/USACO 1.1.1 Your Ride Is Here
题意:给出两个大写的英文串,规则:A代表1,B代表2......Z代表26,现在分别计算两个字符串,计算法则例如:ABC=1*2*3。如果两个字符串的得数mod 47相等,则输出GO,否则输出STAY。
分析:充分利用ASCII码的对应关系,算每一个字母所代表的数即用s[i]-'A'+1即可,最后别忘了mod 47。
1 #include<cstdio> 2 #include<cstring> 3 4 int calc(char *s) 5 { 6 int len=strlen(s); 7 int ans=1; 8 for (int i=0;i<len;i++) 9 ans=ans*(s[i]-'A'+1); 10 return ans%47; 11 } 12 13 int main() 14 { 15 char a[7],b[7]; 16 scanf("%s%s",a,b); 17 if (calc(a)==calc(b)) printf("GO\n"); 18 else printf("STAY\n"); 19 return 0; 20 }