Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
117032 陈家宝 确定进制 C++ 通过 100 0 MS 252 KB 938 2023-12-21 14:00:29

Tests(4/4):


#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; }


测评信息: