本文共 1533 字,大约阅读时间需要 5 分钟。
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
7 2
23 12 -4 3111
1B -11进制转换的原理就是取余,从大到小依次输出余数就可以了
提一嘴java的输入输出是真的麻烦import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.io.StreamTokenizer;public class Main { public static void zhihuan(int a, int b) { StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out)); int yushu; if (a == 0) return; else { zhihuan(a / b, b); yushu = a % b; if (yushu < 10) { out.print(yushu); out.flush(); } else { char s = (char) ('A' + yushu - 10);//转换为字符 out.print(s); out.flush(); } } } public static void main(String[] args) throws IOException { StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out)); while (in.nextToken() != StreamTokenizer.TT_EOF) { //判断是否输入完成 int n = (int) in.nval;//读取上一个数据 in.nextToken(); int r = (int) in.nval; if (n > 0) { zhihuan(n, r); } else if (n < 0) { n = -n; out.print("-"); out.flush(); zhihuan(n, r); } else { out.print("0"); } out.println(); out.flush();//换行也要加这个 } }}
转载地址:http://jxagz.baihongyu.com/