洛谷 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;
}

posted on 2019-12-13 10:56  休比  阅读(261)  评论(0编辑  收藏  举报