社区讨论
蒟蒻 95 求助,#17 WA
B2141确定进制参与者 2已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @lo86hegt
- 此快照首次捕获于
- 2023/10/27 13:34 2 年前
- 此快照最后确认于
- 2023/10/27 13:34 2 年前
代码:
CPP#include <bits/stdc++.h>
#define endl "\n"
#define qwq cin.tie(0);cout.tie(0);ios::sync_with_stdio(false)
using namespace std;
string P, Q, R, A, c = "0123456789ABCDEF";
int lenp, lenq, lenr, lena, p[105], r[105], q[105], a[105];
int main(){
cin >> P >> Q >> R;
lenp = P.length(), lenq = Q.length(), lenr = R.length();
for(int i = lenp - 1; i >= 0; i--) p[lenp - i] = P[i] >= '0' && P[i] <= '9' ? P[i] - '0' : P[i] - 'A' + 10;
for(int i = lenq - 1; i >= 0; i--) q[lenq - i] = Q[i] >= '0' && Q[i] <= '9' ? Q[i] - '0' : Q[i] - 'A' + 10;
for(int i = lenr - 1; i >= 0; i--) r[lenr - i] = R[i] >= '0' && R[i] <= '9' ? R[i] - '0' : R[i] - 'A' + 10;
int maxn;
for(int i = 1; i <= lenp; i++) maxn = max(p[i], maxn);
for(int i = 1; i <= lenq; i++) maxn = max(q[i], maxn);
for(int i = 1; i <= lenr; i++) maxn = max(r[i], maxn);
for(int b = maxn + 1; b <= 16; b++){
// cout << b << " ";
memset(a, 0, sizeof a);
for(int i = 1; i <= lenp; i++) for(int j = 1; j <= lenq; j++) a[i + j - 1] += p[i] * q[j];
lena = lenp + lenq;
for(int i = 1; i <= lena; i++){
if(a[i] > 9){
a[i + 1] += a[i] / b;
a[i] %= b;
}
}
// for(int i = lena; i >= 1; i--) cout << a[i];
// cout << endl;
while(a[lena] == 0 && lena > 1) lena--;
bool flag = lena == lenr;
if(!flag) continue;
for(int i = 1; i <= lenr; i++) {
if(a[i] != r[i]){
flag = false;
break;
}
}
if(flag){
cout << b << endl;
return 0;
}
}
cout << 0 << endl;
return 0;
}
回复
共 6 条回复,欢迎继续交流。
正在加载回复...