参考例程代码
例子确实写的好
关键:其他进制数据转换为10进制 b2ten()
#include <stdio.h>
#include <string.h>
long b2ten(char *x, int b)
{
int ret = 0;
int len = strlen(x);
for (int i = 0; i < len; ++i)
{
if(x[i] - '0' >= b)
return -1;
ret *= b;
ret += x[i] - '0';
}
return (long)ret;
}
int main()
{
int T;
int i,j;
char p[8],q[8],r[8];
long palgo,qalgo,ralgo;
scanf("%d",&T);
while(T--)
{
scanf("%s%s%s",&p,&q,&r);
int b;
for(b = 2; b <= 16; ++b)
{
palgo = b2ten(p,b);
qalgo = b2ten(q,b);
ralgo = b2ten(r,b);
if(palgo == -1 || qalgo == -1 || ralgo == -1)
continue;
if(palgo * qalgo == ralgo)
{
printf("%d\n",b);
break;
}
}
if(b == 17)
printf("0\n");
}
return 0 ;
}