88 你要乘坐的飞碟在这里
作者: xxx时间限制: 1S章节: 字符串
问题描述 :
一个众所周知的事实,在每一颗慧星后面是一个不明飞行物UFO。 这些不明飞行物时常来收集来自在地球上忠诚的支持者。 不幸地,他们的空间在每次旅行只能带上一群支持者。 他们要做的是用一种聪明的方案选择哪个团体被慧星带走。他们为每个慧星起了一个名字,通过这些名字来决定一个团体是不是特定的慧星带走。
那个相配方案的细节在下面被给出, 你的工作要写一个程序来通过团体的名字和彗星的名字来决定他们是否匹配。
团体的名字和慧星的名字都以这种方式转换成一个数字:
首先将名字中的每一个字母转换成数字, A转换成1,B转换成2...... Z转换成26。然后将一个名字中所有字母(转换得到的数字)相乘得到结果。
举例来说,彗星“ABC”对应的结果会是1*2*3=6,团体“USACO” 会是 21*19*1*3*15=17955 。
如果团体的数字 mod 47 等于慧星的数字 mod 47,那么他们是匹配的,这个团体将会被带走 !
写一个程序读入慧星的名字和团体的名字,如果匹配则输出GO否则输出STAY。
团体的名字和慧星的名字将会是没有空格或标点的一串大写字母(不超过6个字母)
输入说明 :
第 1 行: 彗星的名字(一个长度为1到6的字符串) 第 2 行: 团体的名字(一个长度为1到6的字符串)
名字中没有空格或标点,且仅包含大写字母。
输出说明 :
单独一行包含STAY 或 GO
输入范例 :
COMETQ
HVNGAT
输出范例 :
GO
#include <stdio.h>
#include <string.h>
int main()
{
char star[7],group[7];
int S[7],G[7];
int len1,len2,i,sum_s=1,sum_g=1;
scanf("%s %s",star,group);
len1=strlen(star);
len2=strlen(group);
for(i=0;i<len1;i++)
{
S[i]=star[i]-'A'+1;
sum_s*=S[i];
}
for(i=0;i<len2;i++)
{
G[i]=group[i]-'A'+1;
sum_g*=G[i];
}
if(sum_s%47==sum_g%47)
printf("GO\n");
else printf("STAY\n");
return 0;
}