输入一个十进制数 N,将它转换成 R进制数输出。在 10≤R≤16 的情况下,用'A'
表示 10,用'B'
表示 11,用'C'
表示 12,用'D'
表示 13,用'E'
表示 14,用'F'
表示 15。
输入格式
输入包含两个整数 N(N≤10000) 和 RR(2≤R≤16)。
注意,N 有可能是负整数。
输出格式
输出一行,表示转换后的数。
样例输入
23 12
样例输出
1B
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();// 输入一个数
int jinzhi = scanner.nextInt();// 输入要转换的进制
StringBuilder sBuilder = new StringBuilder();
if (num < 0) {
System.out.print("-");// 如果小于0 则要加负号
num = -1 * num;
}
if (num == 0)// -----------------要注意0的情况 输入0直接输出0-----------------
System.out.print(0);
// 如果要转换的进制大于10 则要进行以下转换
if (jinzhi > 10) {
while (num != 0) {
int yushu = num % jinzhi;
if (yushu < 10)
sBuilder.append(yushu);
else if (yushu == 10)
sBuilder.append("A");
else if (yushu == 11)
sBuilder.append("B");
else if (yushu == 12)
sBuilder.append("C");
else if (yushu == 13)
sBuilder.append("D");
else if (yushu == 14)
sBuilder.append("E");
else if (yushu == 15)
sBuilder.append("F");
num = num / jinzhi;
}
System.out.print(sBuilder.reverse());
// 如果输入的进制小于等于10 则要进行以下
} else {
while (num != 0) {
int yushu = num % jinzhi;
sBuilder.append(yushu);
num = num / jinzhi;
}
System.out.print(sBuilder.reverse());
}
}
}