USACO Your Ride Is Here

洛谷 P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…

洛谷传送门

JDOJ 1652: Your Ride Is Here

JDOJ传送门

Description

Notice:This is Chapter1

一个众所周知的事实,在每一彗星后面是一个不明飞行物UFO. 这些不明飞行物时常来收集来自在地球上忠诚的支持者. 不幸地,他们的空间在每次旅行只能带上一群支持者. 他们要做的是用一种聪明的方案让每一个团体人被彗星带走. 他们为每个彗星起了一个名字,通过这些名字来决定一个团体是不是特定的彗星带走. 那个相配方案的细节在下面被给出;

你的工作要写一个程序来通过团体的名字和彗星的名字来决定一个组是否应该与在那一颗彗星后面的不明飞行物搭配.

团体的名字和彗星的名字都以下列各项方式转换成一个数字: 这个最后的数字代表名字中所有字母的信息,"A" 是 1 和 "Z" 是 26.

举例来说,团体 "USACO" 会是 21191315=17955 . 如果团体的数字 mod 47 等于彗星的数字mod 47,那么你要告诉这个团体准备好被带走!

写一个程序读入彗星的名字和团体的名字,如果搭配打印"GO"否者打印"STAY"

团体的名字和彗星的名字将会是没有空格或标点的一串大写字母(不超过6 个字母), 如:

Input Output

COMETQ GO

HVNGAT

ABSTAR

USACO STAY

Input

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

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

Output

单独一行包含"STAY"或"GO".

Sample Input

COMETQ HVNGAT

Sample Output

GO

题解:

拿这题练一下字符串处理吧!

每一个字符都对应着一个ASCII码,所以字符是可以通过“计算”转化成int的。

其实ASCII码不需要背,直接减去'(字母)'就行。

代码如下:

#include<cstdio>
#include<cstring>
using namespace std;
char a[10],b[10];
int ansa=1,ansb=1;
int main()
{
    scanf("%s%s",a+1,b+1);
    int lena=strlen(a+1);
    int lenb=strlen(b+1);
    for(int i=1;i<=lena;i++)
    {
        int sum1=a[i]-'A'+1;//别忘了+1哦
        ansa*=sum1;
    }
    for(int i=1;i<=lenb;i++)
    {
        int sum2=b[i]-'A'+1;
        ansb*=sum2;
    }
    ansa%=47;
    ansb%=47;
    if(ansa==ansb)
        printf("GO");
    else
        printf("STAY");
    return 0;
}
原文地址:https://www.cnblogs.com/fusiwei/p/11388239.html