Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
117032 | 陈家宝 | 确定进制 | C++ | 通过 | 100 | 0 MS | 252 KB | 938 | 2023-12-21 14:00:29 |
#include<bits/stdc++.h> using namespace std; int solvea(string s,int p){ int x=1,ans=0; for(int i=s.size()-1;i>=0;i--){ if(s[i]>='A')ans+=(s[i]-'A'+10)*x; else ans+=(s[i]-'0')*x; x*=p; } return ans; } string solveb(int t,int r){ string ans=""; while(t!=0){ int f=t%r; t/=r; if(f<10)ans=((char)(f+'0'))+ans; else ans=((char)((f-10)+'A'))+ans; } return ans; } int main(){ string a,b,c; cin>>a>>b>>c; int minn=0; for(int i=0;i<a.size();i++){ if(a[i]>='A')minn=max(minn,a[i]-'A'+10); else minn=max(minn,a[i]-'0'); } for(int i=0;i<b.size();i++){ if(b[i]>='A')minn=max(minn,b[i]-'A'+10); else minn=max(minn,b[i]-'0'); } for(int i=0;i<c.size();i++){ if(c[i]>='A')minn=max(minn,c[i]-'A'+10); else minn=max(minn,c[i]-'0'); } for(int i=minn+1;i<=16;i++){ int d=solvea(a,i),e=solvea(b,i),f=solvea(c,i); if(d*e==f){ cout<<i; break; } } return 0; }