5 条题解
-
2
玩个烂梗
#include<bits/stdc++.h> using namespace std; int main(){ char c[7],g[7]; int ge=1,neetimay=1; scanf("%s%s",c,g); for(int i=0;i<6;i++) if(c[i]!='\0') ge*=(c[i]-'A'+1); ge%=47; for(int i=0;i<6;i++) if(g[i]!='\0') neetimay*=(g[i]-'A'+1); neetimay%=47; if(ge==neetimay) printf("GO"); else printf("STAY"); return 0; }
-
1
using namespace std; int main(){ char c[7],g[7]; int ge=1,neetimay=1; scanf("%s%s",c,g); for(int i=0;i<6;i++) if(c[i]!='\0') ge*=(c[i]-'A'+1); ge%=47; for(int i=0;i<6;i++) if(g[i]!='\0') neetimay*=(g[i]-'A'+1); neetimay%=47; if(ge==neetimay) printf("GO"); else printf("STAY"); return 0; }
-
0
代码都写在下面了(含注释)
#include <bits/stdc++.h> using namespace std; long long len1,len2,ans1=1,ans2=1,x; //一定要用longlong!用int也许会溢出。 string s1,s2; int main() { cin>>s1>>s2; len1=s1.size(),len2=s2.size();//长度赋值。 for (int i=0;i<len1;i++) { x=s1[i]-'A'+1;//计算当前字符的对应数字。 ans1=ans1*x;//乘起来。 } for (int i=0;i<len2;i++) { x=s2[i]-'A'+1; ans2=ans2*x; //同理 } if (ans1%47==ans2%47) cout<<"GO";//判断是否可以去/不去。 else cout<<"STAY"; return 0; }
-
0
#include <bits/stdc++.h> using namespace std; int main() { string ufo; string usaco; cin>>ufo; cin>>usaco; int sum = 1; int sum2 = 1; for (int i = 0;i <= ufo.size()-1;i++) sum *= ufo[i] - 64; for (int i = 0;i <= usaco.size()-1;i++) sum2 *= usaco[i] - 64; if (sum % 47 == sum2 % 47) cout<<"GO"<<endl; else cout<<"STAY"<<endl; return 0; }
-
0
上代码(说明在代码里):
#include<iostream> #include<string> using namespace std; string s1,s2; const unsigned int to_num[128]={255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255};//打个表,不用每次字母转数字都要算 unsigned int hashes(string s){//用于算一个字符串转数字后mod47的值 unsigned int mul=1; for(unsigned int i=0,len=s.length();i<len;i++){//遍历字符串 mul*=to_num[s[i]]; mul%=47;//过程中就取余,防溢出 } return mul; } int main(){ cin >> s1 >> s2; if(hashes(s1)==hashes(s2)){//如果它们mod47的值相等 cout << "GO"; } else{ cout << "STAY"; } return 0; }
- 1
信息
- ID
- 201
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 1
- 标签
- 递交数
- 109
- 已通过
- 73
- 上传者