1.简述:
给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数
输入为一行,M(32位整数)、N(2 ≤ N ≤ 16),以空格隔开。
为每个测试实例输出转换后的数,每个输出占一行。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等)
输入:
7 2
输出:
111
2.代码实现:
import java.util.Scanner;标签:yyds,名企,进制,真题,16,flag,输出,append,Scanner From: https://blog.51cto.com/u_15488507/5982104
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int m = in.nextInt();
int n = in.nextInt();
StringBuilder s = new StringBuilder();
String table = "0123456789ABCDEF";
//用来存储2-16进制中所有的可能
boolean flag = false; //标记下有没有加负号
if(m < 0){
m = -m;
flag = true;
//本身是负数,我们改为正数了。标记下
}
if(m == 0){
s.append('0');
}
while (m != 0) {
s.append(table.charAt(m % n));
m /= n;
}
if(flag){
s.append('-');
}
s.reverse();
System.out.println(s);
}
}
}