模拟/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 }

 

posted @ 2012-11-15 22:21  Rinyo  阅读(179)  评论(0编辑  收藏  举报