Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
173604 | B班-胡书恒 | 确定进制 | C++ | 无测评数据 | 0 | 0 MS | 0 KB | 943 | 2024-08-20 22:00:20 |
#include<bits/stdc++.h> using namespace std; string a,b,c; int x[7],y[7],z[7]; int maxJ; void init(){ for(int i=0;i<a.size();i++){ if(a[i]>='A'&&a[i]<='Z'){ x[i]=a[i]-'A'+10; }else{ x[i]=a[i]-'0'; }maxJ=max(maxJ,x[i]); }for(int i=0;i<b.size();i++){ if(b[i]>='A'&&b[i]<='Z'){ y[i]=b[i]-'A'+10; }else{ y[i]=b[i]-'0'; }maxJ=max(maxJ,y[i]); }for(int i=0;i<c.size();i++){ if(c[i]>='A'&&c[i]<='Z'){ z[i]=c[i]-'A'+10; }else{ z[i]=c[i]-'0'; }maxJ=max(maxJ,z[i]); }maxJ++; } int main(){ int res=0; cin>>a>>b>>c; init(); for(int B=maxJ;B<=16;B++){ int sa=0,sb=0,sc=0; int w=1; for(int i=a.size()-1;i>=0;i--){ sa+=(x[i])*w; w*=B; }w=1; for(int i=c.size()-1;i>=0;i--){ sc+=(z[i])*w; w*=B; }w=1; for(int i=b.size()-1;i>=0;i--){ sb+=(y[i])*w; w*=B; } if(sa*sb==sc){ res=B; goto ans; } }ans: cout<<res; return 0; }