杭电oj —— 2031

import java.util.Scanner;
/*
 * 输入一个十进制数N,将它转换成R进制数输出.
 */
public class HDU_oj2031 {
	public static void main(String args[]) {
		Scanner sn = new Scanner(System.in);
		// 多组数据
		while (sn.hasNext()) {
			int n = sn.nextInt();// 十进制数n
			int r = sn.nextInt();// R进制数r
			String s = "";
			if (n < 0) { // 变为正数
				n = -n;
				System.out.print("-");
			}
			char a = 'A';
			int b = a;  //A的ASSIC码   : A的ASCII码是65,a的ASCII码是97
			while (n > 0) {
				int t = n % r;  //取模
				if (t >= 10) {  //这里的是大于等于10的,无法用阿拉伯数字直接表示的
					int c = t - 10 + b;
					char d = (char) c;  //都是巧用ASSIC码表示,而不是我过去常用的数组表示
					s = s + d;  //字符串追加
				} else  //这里的是小于10的,用阿拉伯数字直接表示,直接追加
					s = s + t;
				n = n / r;
			}
			StringBuffer str = new StringBuffer(s);
			str.reverse().toString();
			System.out.println(str);
		}
		sn.close();
	}
}

猜你喜欢

转载自blog.csdn.net/LiLi_code/article/details/87910987