提交时间:2024-08-19 17:23:17
运行 ID: 167767
#include<bits/stdc++.h> //引入头文件,在bits文件夹 using namespace std;//用标准的命名空间 int Change(char *x,int b) //把n进制数转化为10进制数的函数 { int num=0;//转换后的数 for(int i=0; i<strlen(x); i++) //从第一位枚举到最后一位 { if(x[i]-'0'>=b)//如果数超出了进制 return -1;//返回-1 num=num*b+x[i]-'0';//转化为整形的数 } return num;//返回答案 } int main() { char p[9],q[9],r[9];//定义p,q,r scanf("%s %s %s",p,q,r);//输入p,q,r int B=0;//进制数,默认为零 for(int i=2; i<=16; i++)//从二开始枚举 { int pi=Change(p,i);//p的十进制 int qi=Change(q,i);//q的十进制 int ri=Change(r,i);//r的十进制 if(pi==-1||qi==-1||ri==-1) //出现数的进制不符合(121为二进制等) continue;//继续循环 if(pi*qi==ri)//如果满足条件 { B=i;//确定进制 break;//跳出循环 } } printf("%d\n",B);//输出进制(如果没有找到,输出0) return 0;//返回零 }