85求改;谢谢大佬(1,14,16wa)
  • 板块B2141 确定进制
  • 楼主wdsa1fa
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/11 17:36
  • 上次更新2024/10/11 20:32:08
查看原帖
85求改;谢谢大佬(1,14,16wa)
1218469
wdsa1fa楼主2024/10/11 17:36
#include<bits/stdc++.h>
using namespace std;
int p,q,s;
char l[25],r[25];
int dp1(int a,int n){
	int a1=a,h=0,i=0;
	while(a1>0){
		int i1=pow(n,i);
		h+=(a1%10)*(i1);
		a1/=10;
		i++;
	}
	return h;
}
void dp(int n){
	int a=s,i=0;
	int b[25];
	while(a>0){
		b[i]=a%n;
		a=a/n;
		i++;
	}
	for(int j=0;j<i;j++){
		if(b[i-j-1]>=10){
			l[j]=b[i-j-1]-10+'A';
		}
		else l[j]=b[i-j-1]+'0';
	}
}
int main(){
	scanf("%d%d",&p,&q);
	scanf("%s",r);
	for(int i=max(p%10,q%10)+1;i<=16;i++){
		s=dp1(p,i)*dp1(q,i);
		memset(l,0,sizeof(l));
		dp(i);
		if(strlen(r)==strlen(l)){
			if(strcmp(l,r)==0){
				printf("%d",i);
				return 0;
			}	
			
		}
		
	}
	printf("0");
	return 0;
}
2024/10/11 17:36
加载中...