7-1 1.1.1 你要乘坐的飞碟在这里 (100分)

探索一个有趣的设定,每个彗星背后都有一个UFO,它们使用巧妙的方案选择地球上的支持者进行星际旅行。通过计算团体名和彗星名的数字特征,判断是否匹配,从而决定支持者是否能被带上UFO。

一个众所周知的事实,在每一彗星后面是一个不明飞行物 UFO. 这些不明飞行物时常来收集来自在 地球上忠诚的支持者. 不幸地,他们的空间在每次旅行只能带上一群支持者. 他们要做的是用一种 聪明的方案让每一个团体人被彗星带走. 他们为每个彗星起了一个名字,通过这些名字来决定一个 团体是不是特定的彗星带走. 那个相配方案的细节在下面被给出; 你的工作要写一个程序来通过团体的名字和彗星的名字来决定一个组是否应该与在那一颗彗星后 面的不明飞行物搭配. 团体的名字和彗星的名字都以下列各项方式转换成一个数字: 这个后的数字代表名字中所有字 母的信息,“A” 是 1 和 “Z” 是 26. 举例来说,团体 “USACO” 会是 21∗19∗1∗3∗15=17955 . 如果团体的数字 mod 47 等于彗星的数字 mod 47,那么你要告诉这个团体准备好被带走! 写一个程序读入彗星的名字和团体的名字,如果搭配打印"GO"否者打印"STAY" 团体的名字和彗星的名字将会是没有空格或标点的一串大写字母(不超过 6 个字母), 如:
Input Output
COMETQ GO
HVNGAT
ABSTAR STAY
USACO

输入格式:
第 1 行: 彗星的名字(一个长度为1到6的字符串)

第 2 行: 团体的名字(一个长度为1到6的字符串)

输出格式:
单独一行包含"STAY"或"GO".

输入样例:
在这里给出一组输入。例如:

COMETQ
HVNGAT

输出样例:
在这里给出相应的输出。例如:

GO


【源代码】

#include <iostream>
#include <string>
using namespace std;

int transfer(string s); // 转换函数,将字符串变为特征数字

int main()
{
	string s1;
	string s2;
	cin >> s1 >> s2;
	if (transfer(s1) == transfer(s2)) // 特征数字相同即可上会彗星
	{
		cout << "GO" << endl;
	}
	else
	{
		cout << "STAY" << endl;
	}
	return 0;
}

int transfer(string s)
{
	int sum = 1;
	for (int i = 0; i < s.size(); i++)
	{
		sum *= (s[i]-64); // A的ASCII码为65,减去64后为题目所对应的1,后面的字母同理;
	}
	sum %= 47;
	return sum;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值