洛谷 P1200 [USACO1.1]你的飞碟在这儿Your Ride Is Here 题解
P1200 [USACO1.1]你的飞碟在这儿Your Ride Is Here
Main Idea:
小组名和彗星名都以下列方式转换成一个数字:最终的数字就是名字中所有字母的积,其中A是1,Z是26。如果小组的数字mod47等于彗星的数字mod47,你就得告诉这个小组需要准备好被带走!
Summary:
1.char类型数组用'\0'清零,不会影响strlen。
2.暂时还没想到即清零也不影响sizeof的方法,所以对于int类型,最好还是使用vector或者deque吧。
3.字符串部分赋值,其余部分自动赋值为0.
Problem Solving Idea:
模拟题意。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
char a[7],b[7];
memset(a,'\0',sizeof(a));
memset(b,'\0',sizeof(b));
int num_a=1,num_b=1;
cin>>a>>b;
for(int i=0;i<6;i++){
if(a[i]!='\0') num_a*=a[i]-'A'+1;
if(b[i]!='\0') num_b*=b[i]-'A'+1;//防止对于长度没有6的字符串,会乘上‘\0’-‘A’+1
}
if(num_a%47==num_b%47) cout<<"GO";
else cout<<"STAY";
return 0;
}