神犇营-USACO1.1.1-不明飞行物

【小韦同学@神犇营-USACO1.1.1-不明飞行物】

题目:

描述

UFO(不明飞行物)经常从地球上带走忠实的追随者。由于飞船容量限制,他们每次只能带走一个追随者,问题是该带走谁呢?UFO设计了一个策略:根据飞船名称和追随者姓名来决定带走谁。你的任务是编写一个程序,帮助UFO来确定该带走哪个人。
追随者姓名和飞船名称都按照以下方式转换成一个数字:最终的数字是名称中所有字母的乘积,其中“A”是1,“Z”是26。例如,“USACO”转换后的数字是21191315=17955。如果追随者姓名数字除以47的余数与飞船名称数字除以47的余数相同,那么这位追随者就要做好出发的准备了:)
编写一个程序,读出UFO飞船名称和追随者姓名,并根据上面的方案判断两者是否匹配,如果匹配,则打印“GO”,如果不匹配,则打印“STAY”。追随者姓名和飞船名称是一串大写字母,没有空格或标点,最多6个字符长。

输入

由两行组成:第一行是飞船名称,第二行是追随者姓名。

输出

由一行组成:显示“GO”或“STAY”。

输入样例1

COMETQ
HVNGAT

输出样例1

GO

题解:

/************************************************************************** 
* 题目:神犇营-USACO1.1.1-不明飞行物 
* 作者:小韦同学 
* 邮箱:weichangying_wcy@163.com 

* 题解:
	思路:这是简单的字符串使用,将两个名字分别算出它们的积,然后判断它们模
		  47是否相等即可。  
	注意:1°两个积要记得初始化为1。 
		  2°计算大写字母对应的数字:字符 - 'A' + 1(不要忘了加1)。 

***************************************************************************/ 

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

// 将大写字母转换为数字后连乘,返回连乘后的积 
int code(string s) {   
	int mul = 1;
	for (int i = 0; i < s.size(); i++) {
		mul *= s[i] - 'A' + 1;
	} 
	return mul;
} 

int main() {
	
	string ufo, name;  // 飞船名字,追随者名字 
	cin >> ufo >> name;
	int mul1 = code(ufo), mul2 = code(name);  // 调用code函数 
	if (mul1 % 47 == mul2 % 47) cout << "GO";
	else cout << "STAY";
	
	return 0;
}

我是小韦同学,企者不立,跨者不行,每天进步一点点。
欢迎大家多多交流,如果发现有错误,请多指正。有疑问的同学也可以留言评论或者发邮件。
邮箱:weichangying_wcy@163.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值