您的位置:首页 > 其它

确定进制

2012-03-17 20:35 162 查看
// 上学期计概题了
#include<iostream>
#include<cmath>

using namespace std;

int main()
{
int n;
cin >> n;
for (;n >= 1; n --)
{
int B, i, j, k;
int p, q, r, found = 0;
int P[11] = {0}, Q[11] = {0}, R[11] = {0};
cin >> p >> q >> r;

for (i = 0; ; i ++)
{
P[i] = p % 10;
Q[i] = q % 10;
R[i] = r % 10;
p /= 10;
q /= 10;
r /= 10;
if (p == 0 && q == 0 && r == 0) break;
}

for (B = 2; B <= 16; B ++)
{
int Bplus = 0;
for (i = 0; i < 10; i ++)
if (P[i] >= B || Q[i] >= B || R[i] >= B) {Bplus = 1; break;}
if (Bplus) continue;

int pB = 0, qB = 0, rB = 0;
for (i = 0; i <= 10; i ++)
{
int BB = 1;
for (j = 1; j <= i; j ++)
BB *= B;
pB += P[i] * BB;
qB += Q[i] * BB;
rB += R[i] * BB;
}

if (qB * pB == rB) {cout << B << endl ; found = 1; break;}
}
if (!found) cout << 0 << endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: