您的位置:首页 > 其它

题目1118:数制转换

2014-01-21 21:13 169 查看
import java.util.Scanner;
import java.lang.StringBuffer;

class Main
{

public static void main(String[] args)
{
Scanner cin = new Scanner(System.in);
int a, b;
String n;

while (cin.hasNext()) {
a = cin.nextInt();
n = cin.next();
b = cin.nextInt();

long sum = 0;
for (int i = 0; i < n.length(); i++) {
char ch = n.charAt(i);
if (Character.isDigit(ch)) {
sum = sum * a + ch - '0';
} else if (Character.isLetter(ch)) {
if (Character.isLowerCase(ch)) {
sum = sum * a + ch - 'a' + 10;
} else {
sum = sum * a + ch - 'A' + 10;
}
}
}

StringBuffer sb = new StringBuffer();
while (sum > 0) {
long rem = sum % b;
if (rem > 9) {
sb.append((char)('A' + rem - 10));
} else {
sb.append((char)('0' + rem));
}

sum /= b;
}

String ans = sb.reverse().toString();
if (ans.length() == 0) System.out.println(0);
else System.out.println(ans);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: