1 #include<stdio.h> 2 #include<stdlib.h> 3 char p[32],q[32],r[32]; 4 int MinRadix()//找出最低限的进制 5 { 6 int i,minRadix; 7 minRadix=1; 8 for(i=0;p[i];i++)//找出p[i]最大的数 9 if(minRadix<p[i]-'0') minRadix=p[i]-'0'; 10 for(i=0;q[i];i++) 11 if(minRadix<q[i]-'0') minRadix=q[i]-'0'; 12 for(i=0;r[i];i++) 13 if(minRadix<r[i]-'0') minRadix=r[i]-'0'; 14 return minRadix+1; 15 } 16 bool Radix(int radix)//radix进制转化为10进制 17 { 18 int i,P,Q,R; 19 for(P=i=0;p[i];++i) 20 P=P*radix+p[i]-'0'; 21 for(Q=i=0;q[i];++i) 22 Q=Q*radix+q[i]-'0'; 23 for(R=i=0;r[i];++i) 24 R=R*radix+r[i]-'0'; 25 if(P*Q==R) return 1; 26 else return 0; 27 } 28 int main() 29 { 30 int T,i; 31 scanf("%d",&T); 32 while(T--) 33 { 34 scanf("%s%s%s",p,q,r); 35 for(i=MinRadix();i<17;i++) 36 if(Radix(i)) break; 37 printf("%d\n",i==17?0:i); 38 } 39 //system("pause"); 40 return 0; 41 } 42
相关文章: