进制转换
输入一个十进制数 NNN,将它转换成 RRR 进制数输出。在 10≤R≤1610 \le R \le 1610≤R≤16 的情况下,用'A'
表示 101010,用'B'
表示 111111,用'B'
表示 111111,用'C'
表示 121212,用'D'
表示 131313,用'E'
表示 141414,用'F'
表示 151515。
输入格式
输入包含两个整数 N(N≤10000)N(N \le 10000)N(N≤10000) 和 R(2≤R≤16)R(2 \le R \le 16)R(2≤R≤16)。
注意,NNN 有可能是负整数。
输出格式
输出一行,表示转换后的数。
样例输入
23 12
样例输出
1B
package 计蒜客; import java.util.Scanner; public class 进制转换 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); int n=scan.nextInt(); int r=scan.nextInt(); if(n==0){ System.out.println(0); }else if(n<0){ System.out.println("-"+fun(-n,r)); } else{ System.out.println(fun(n,r)); } } public static String fun(int n,int r){ StringBuffer sb=new StringBuffer(); while(n!=0){ if(n%r<10){ sb.append(n%r); }else{ sb.append(change(n%r)); } n/=r; } return sb.reverse().toString(); } public static String change(int n){ switch(n){ case 10: return "A"; case 11: return "B"; case 12: return "C"; case 13: return "D"; case 14: return "E"; case 15: return "F"; } return null; } }