进制转换
Problem Description
输入一个十进制数N,将它转换成R进制数输出。
Input
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
Output
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
Sample Input
7 2
23 12
-4 3
Sample Output
111
1B
-11
import java.io.BufferedInputStream;
import java.util.Scanner;
public class P2031 {
static void f(int n, int r) {
if(n != 0) {
f(n / r, r);
System.out.print((char)(n % r > 9 ? n%r-10 + 'A' : n%r + '0') );
}
}
/**
* TODO
* @return_type void
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s = new Scanner(new BufferedInputStream(System.in));
int n, r;
while(s.hasNext()) {
n = s.nextInt();
r = s.nextInt();
if(n > 0) {
f(n, r);
System.out.println();
}
else if(n == 0)
System.out.println('0');
else {
System.out.print('-');
f(-n, r);
System.out.println();
}
}
}
}