杭电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();
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值