开始 2024-08-19 00:00:00

8.19-8.24集训第一天

结束 2024-08-25 23:59:00
Contest is over.
当前 2024-12-22 19:33:19

E题#include<bits/stdc++.h> //引入头文件,在bits文件夹 using namespace std;//用标准的命名空间 int Change(char *x,int b) //把n进制数转化为10进制数的函数 { int
#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;//返回零
}

chenyanhong  •  4个月前

比赛已结束。