2017-5-27
【题目描述】
一个众所周知的事实,在每一慧星后面是一个不明飞行物UFO。这些不明飞行物时常来收集来自在地球上忠诚的支持者。不幸地,他们的飞碟在每次旅行只能带上一定数目的支持者。 他们要做的是用一种聪明的方案让每一个团体人被慧星带走。他们为每个慧星起了一个独有名字,通过这些名字来决定一个团体是不是特定的慧星带走。 那个相配方案的细节在下面被给 出;你的工作要写一个程序来通过团体的名字和彗星的名字来决定一个组是否应该与在那一颗慧星后面的不明飞行物搭配。团体的名字和慧星的名字都以下列各项方式转换成一个数字: 这个最后的数字代表名字中所有字母的信息,”A” 是1 和 “Z” 是 26。举例来说,团体 “USACO” 会是 21*19*1*3*15=17955 。如果团体的数字除以47的余数等于慧星的数字除以47的余数,那么你要告诉这个团体需要准备好被带走 ! 写一个程序读入慧星的名字和团体的名字,如果能搭配打印”GO”否则打印”STAY” 团体的名字和慧星的名字将会是由没有空格或标点的一串大写字母(不超过6个字母)。
【输入格式】
第1行: 彗星的名字(一个长度为1到6的大写字符串)
第2行: 团体的名字(一个长度为1到6的大写字符串)
【输出格式】
(单独一行)"STAY"或"GO"。
【输入样例1】
COMETQ
HVNGAT
【输出样例1】
GO
【输入样例2】
ABSTAR
USACO
【输出样例2】
STAY
【题解】
读入两个字符串 ,按顺序,用公式 -’A’ + 1转换相乘,比较结果。
【代码】
/*
ID: M_Ker
PROB: ride
LANG: C++
*/
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ofstream fout ("ride.out");
ifstream fin ("ride.in");
string a,b;
int i,a1,b1;
fin>>a>>b;
for(i=0,a1=1;i<a.length();i++)
a1*=(a[i]-'A'+1)%47;
for(i=0,b1=1;i<b.length();i++)
b1*=(b[i]-'A'+1)%47;
if(a1==b1)
fout<<"GO"<<endl;
else
fout<<"STAY"<<endl;
return 0;
}