提交时间:2026-01-03 21:09:05
运行 ID: 79396
#include <iostream> #include <string> using namespace std; // 将字符串 s 按 B 进制转成十进制数 int toInt(string s, int B) { int num = 0; for(int i = 0 ; i < s.size() ; i++ ) { char c = s[i] ; int digit = c - '0'; // 如果某位数字 >= B,说明这个进制不合法 if (digit >= B) return -1; num = num * B + digit; } return num; } int main() { string p, q, r; cin >> p >> q >> r; for (int B = 2; B <= 16; B++) { int p_val = toInt(p, B); int q_val = toInt(q, B); int r_val = toInt(r, B); // 如果有任何数在该进制下不合法,跳过 if (p_val == -1 || q_val == -1 || r_val == -1) continue; // 检查乘法是否成立 if (p_val * q_val == r_val) { cout << B << endl; return 0; } } cout << 0 << endl; return 0; }