JAVA洛谷B2141 确定进制

题目描述在这里插入图片描述
输入格式
一行,包含三个整数 p,q,r,相邻两个整数之间用单个空格隔开

输出格式
一个整数:即使得p×q=r 成立的最小的 B。如果没有合适的 B,则输出 0

输入输出样例
输入

6 9 42

输出

13

说明/提示
在这里插入图片描述
源码

import java.util.Scanner;

public class Main{
    
    
	public static void main(String[] args) {
    
    
		Scanner sc = new Scanner(System.in);
		int radix = 0;
		String str1 = sc.next();
		String str2 = sc.next();
		String str3 = sc.next();
		String str = str1+str2+str3;
		//最小进制必大于最大的字符+1
		for(int j=0;j<str.length();j++) {
    
    
			String ch = str.substring(j,j+1);
			int tmp = ch.charAt(0)-48;
			if(tmp>radix) radix = tmp;
		}
		int result = 0;
		for(int i=radix+1;i<16;i++) {
    
    
			int num1 = Integer.parseInt(str1, i);//调用内置函数将i进制的str转换成10进制
			int num2 = Integer.parseInt(str2, i);
			int num3 = Integer.parseInt(str3, i);
			if(num1*num2==num3) {
    
    
				result = i;
				break;
			}
		}
		System.out.println(result);
	}
}

但是洛谷评测只能得到85分(满分100分),不知道问题出在了哪里,欢迎赐教!

猜你喜欢

转载自blog.csdn.net/weixin_46574356/article/details/122656830
今日推荐