看到这个题目的第一步,我们要想到商的最高位是怎么得来的,由6*9=54,而54/13等于4(在c++中是向下舍入)而54%13=2,这样就解决了难题,
判断函数的代码:
int f(string s, int b){
int ans = 0;
for (int i = 0; i < s.size(); i++){
if (s[i]-'0'>=b) return -0x3f3f3f3f;
ans = ans*b+s[i]-'0';
}
return ans;
}
接下来就是简单到不能再简单的主函数代码
int main(){
cin >> p >> q >> r;
for (int i = 2; i <= 40; i++){
int x=f(p,i), y=f(q,i), z=f(r,i);\
if (x+y+z < 0) continue;
if (x*y == z){
cout << i;
return 0;
}
}
cout << 0;
return 0;
}
此题也是非常的煎蛋,就是个转进制的数论基础题