7-9 人工智能数字翻译
千万不要以为地球上的人类都用十进制数字。事实上,地球上不同国家、不同民族在用的数字系统多达十几套。例如新几内亚的 Oksapmin 人用的是 27 进制的数字系统,如上图所示,他们用身体的 27 个部位表示 27 个数字。例如他们管 1 叫“提普纳”,即一只手的大拇指;管 6 叫“都怕”,是指手腕;管 12 叫“纳塔”,指耳朵,等等。于是他们那里的 10 是十进制系统里的 27,20 是十进制里的 54 …… 当两个不同数字系统的人类碰到一起谈价钱,大家就很头痛了,于是搞了一个人工智能数字翻译,可以把数字从一个系统翻译到另一个系统。本题就请你来实现这个人工智能数字翻译功能。
输入格式:
输入在第一行中给出两个非负整数:A(≤108 —— 这里 108 是十进制数)和 D,其中 A 是 10 或 27 进制数,D 是 A 的进制,或者是 10,或者是 27。如果 A 是 27 进制数,我们用 0 - 9 表示前 10 个数,用 A - Q 表示后面 17 个数。
输出格式:
在一行中将输入的数字翻译成另一个进制系统的数字。
输入样例 1:
tex
6397636 10
6397636 10
输出样例 1:
tex
C10OD
C10OD
输入样例 2:
tex
8E0A 27
8E0A 27
输出样例 2:
tex
167680
167680
Solution:
java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String[] input = in.readLine().split(" ");
int D = Integer.parseInt(input[1]);
if (D == 10) {
System.out.println(Integer.toString(Integer.parseInt(input[0]), 27).toUpperCase());
} else {
System.out.println(Integer.parseInt(input[0], 27));
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String[] input = in.readLine().split(" ");
int D = Integer.parseInt(input[1]);
if (D == 10) {
System.out.println(Integer.toString(Integer.parseInt(input[0]), 27).toUpperCase());
} else {
System.out.println(Integer.parseInt(input[0], 27));
}
}
}