50分求助

P1200 [USACO1.1] 你的飞碟在这儿 Your Ride Is Here

代码中“c *= a[i] - 64” “d *= b[i] - 64”想算的是什么?
by Ivan20121212 @ 2024-03-28 20:54:47


~~上面的问题不用看~~ 正确代码如下: ```cpp #include<bits/stdc++.h> using namespace std; int c = 1,d = 1; int main() { string a,b; cin>>a>>b; for(int i = 0;i < a.size();i++) c *= (a[i] - 'A' + 1); for(int i=0;i<b.size();i++) d *= (b[i] - 'A' + 1); if(c % 47 == d % 47) cout << "GO"; else cout << "STAY"; return 0; } ``` 你的代码问题如下: 1.a[i],b[i]的减法不对,因为a[i] b[i]都一定是大写字母,所以要改为 a[i] - 'A' + 1和b[i] - 'A' + 1; 2.c和d是累乘器,初值为1,应该为int(long long也可以) c = 1,d = 1~~你的初始化我没看到~~ 3.字符串从下标从“0”开始到“长度-1”结束,遍历应该为:for (int i = 0;i < a.size();i++) 和 for (int i = 0;i < b.size();i++).
by Ivan20121212 @ 2024-03-29 13:03:32


|