本题目主要意思就是匹配字符串,但是方式有那么一点点特别。
首先请看每一个字母,由于全部是大写,所以不用考虑转换;但是他的计算方式不是ASCLL码,而是这个字母在字母表上面的位置。
比如说‘A'在字母表上是第一个,所以代表的数字是1, "B"是第二个,所以表示2......
知道这一点很容易,但是要怎么表示呢?
这就要涉及ASCLL码了。
已知A的ASCLL码是65,而它的对应的数字是1.
所以自然而然的,对于每一个字母α,它的数值就是其ASCLL值-64!!
最重要的一点出来后,其他的就好办多了。
我们可以先后遍历两个字符串l,l1分别把他们的最终结果算出来,也就是数值之乘积mod47再进行比较。 最终看一看哪些人会被外星人接走拿去做研究...
至于mod,就是指a/b的余数c。应该都理解吧awa...
#include<bits/stdc++.h>//万能头文件,迎接新时代
using namespace std;
string s;
string s1;//两个字符串,对比组
long long sum=1;
long long sum1=1;//对比组的结果记录,也就是乘积,一定要设初始值为1!!不然结果是0..
int main(){
cin>>s;
cin>>s1;
int l=s.size();
int l1=s1.size();//求长度
for(int i=0;i<l;i++){//遍历
s[i]-=64;
sum*=int(s[i]);//转化为"int"类型乘进结果
}
for(int i=0;i<l1;i++){
s1[i]-=64;
sum1*=int(s1[i]);//跟上一组一样
}
if(sum%47==sum1%47){
cout<<"GO";//判断
}
else{
cout<<"STAY";
}
return 0;//看到这里,你已经AC了
}