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

 

你可能感兴趣的:(USACO)