import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int m = in.nextInt(); int n = in.nextInt(); if(m==0){ //当出现 0 n的情况,我们往下面走会发现最后StringBuilder s为空,打印不了,所以的单独判断 为0时直接输出0 System.out.print("0"); } String table = "0123456789ABCDEF"; //存储所有进制的字符串 StringBuilder s = new StringBuilder(); //拼接的数组 boolean flg = false; if (m < 0) { //m为负数 m = -m; //先拿到m对应的正数 flg = true; //变化flg,后面才知道有没有转化过m } //这下保证了m是正数 while (m != 0) { //退出的条件是m/n=0 s.append(table.charAt(m%n)); //把得到的尾数放入拼接(是从table字符串中拿出来的) m = m / n; //m变化,为下一次%n做准备 } //退出后即代表得到了所有的位数 if (flg){ //一开始为FALSE,若为TRUE,则代表负数转化了 s.append("-");//所以拼接负号上去 } s.reverse();//翻转字符串 System.out.println(s); } }