Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
167767 | 谢宗晋 | 确定进制 | C++ | 通过 | 100 | 1 MS | 244 KB | 1035 | 2024-08-19 17:23:17 |
#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;//返回零 }