import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
while (sc.hasNext())
{
String line = sc.nextLine().trim();
String ss[] = line.split("\\s+");
String number = ss[0].trim();
int fromBase = Integer.parseInt(ss[1].trim());
int toBase = Integer.parseInt(ss[2].trim());
String s = toToBase(toTenBase(number, fromBase), toBase);
if (s.length() > 7)
System.out.println(" ERROR");
else
System.out.format("%7s\n", s);
}
}
static int toTenBase(String number, int fromBase)
{
int sum = 0;
int index = 0;
for (int i = number.length() - 1; i >= 0; i--)
{
char c = number.charAt(i);
int n = c >= '0' && c <= '9' ? c - '0' : c - 'A' + 10;
sum += n * Math.pow(fromBase, index++);
}
return sum;
}
static String toToBase(int number, int toBase)
{
if (toBase == 10)
return number + "";
else
{
StringBuilder sb = new StringBuilder();
while (number != 0)
{
int i = number % toBase;
sb.append(i >= 0 && i <= 9 ? (char) (i + '0') : (char) (i - 10 + 'A'));
number /= toBase;
}
return sb.reverse().toString();
}
}
}
ZOJ-1334
最新推荐文章于 2017-05-04 10:39:09 发布
本文介绍了一个Java程序,该程序可以实现不同进制之间的数字转换。通过读取用户输入的字符串形式的数字及其原始进制和目标进制,程序能够准确地完成从任意进制到十进制的转换,再由十进制转换为目标进制,并输出转换后的结果。文章重点讲解了程序的实现原理和技术细节。
摘要由CSDN通过智能技术生成