抽还
给定一个十进制数,将它转换成为任意进制的数值
输入
输入包含多组a,b通过空格隔开
a表示十进制数,b表示进制
例如102表示把十进制数10转换为2进制数
一对a,b占输入的一行
a取值范围:-2147483648~+2141483647
b取值范围:2-36.
输出
对于输入的每对a,b,你需要依次输出a,b的和
对于输入中的第二对a,b,在输出中它们的和应该也在第二行
输入样例1自 输出样例1
10 2 1010
10 8 12
10 16 A
package SysConvert;
import java.util.ArrayList;
import java.util.Scanner;
/**
* 进制转换工具类
* @author 怦九
* @date 2021/11/12
*/
public class SysConvertTools {
/*
进制转换进程
*/
public static void sysConvert(){
ArrayList<String> results = new ArrayList<>();
Scanner sc = new Scanner(System.in);
System.out.println("---------欢迎使用十进制转任意进制系统--------");
System.out.println("---------输入格式:十进制数字 其他进制--------");
System.out.println("---------十进制数字和进制之间用空格隔开--------");
System.out.println("---------多组输入请用回车分割--------");
System.out.println("十进制数字取值范围:-2147483648~2141483647");
System.out.println("进制取值范围:2-36");
System.out.println("例如输入10 2,输出结果为1010");
//s用于存储每一行的输出结果,
String s = " ";
System.out.println("请输入:");
//多组输入回车分割时,只要输入的不是空字符串,程序就会继续
while(!"".equals(s)){
s = sc.nextLine();
//通过split方法,根据空格分割出一个数组
String[] stringArray = s.split(" ");
//跳出循环的设定,如果字符串为空字符串,就可以跳出该while循环
if("".equals(stringArray[0]) || "".equals(stringArray[1])){
break;
}
//使用Integer包装类,将字符串转换成int类型
int a = Integer.parseInt(stringArray[0]);
int b = Integer.parseInt(stringArray[1]);
//result用于存放结果
String result = "";
//字母数组,用于存储A-Z
String [] letters = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
//数字数组,用于存储10-35
int [] numbers = {10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35};
while(a >= b || a %b !=0 ){
//for循环判断,索引对应,10对应A,11对应B,以此类推
for (int i = 0; i < numbers.length; i++) {
if(a % b == numbers[i]){
result = letters[i] + result;
break;
}
}
//如果余数只在0-9,那么直接拼接就可以了
if(a % b < 10){
result = a % b + result;
}
a = a / b;
}
//每一次结果都放入ArrayList集合中
results.add(result);
}
System.out.println("结果如下:");
for (String result : results) {
System.out.println(result);
}
}
}
package SysConvert;
/**
* @author 怦九
* @date 2021/11/12
*/
public class Test {
public static void main(String[] args) {
SysConvertTools.sysConvert();
}
}