PAT1027 Colors in Mars (20分) 10进制转13进制

Posted codervivi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT1027 Colors in Mars (20分) 10进制转13进制相关的知识,希望对你有一定的参考价值。

题目

People in Mars represent the colors in their computers in a similar way as the Earth people. That is, a color is represented by a 6-digit number, where the first 2 digits are for Red, the middle 2 digits for Green, and the last 2 digits for Blue. The only difference is that they use radix 13 (0-9 and A-C) instead of 16. Now given a color in three decimal numbers (each between 0 and 168), you are supposed to output their Mars RGB values.

Input Specification:
Each input file contains one test case which occupies a line containing the three decimal color values.

Output Specification:
For each test case you should output the Mars RGB value in the following format: first output #, then followed by a 6-digit number where all the English characters must be upper-cased. If a single color is only 1-digit long, you must print a 0 to its left.

Sample Input:
15 43 71
Sample Output:

123456

题目解读

简单说,就是给你310进制数字(0-168),输出一个"#"号,把他们都转成13进制(0-9A-C)并输出,中间不要有空格,168也就是 CC,所以转换结果最多也就是 CC,宽度为2,但是要求转换结果只有1位的时候要前面补0,以2位的格式输出,并且字母只能是大写。(比如输出 #12A3BB

思路

最核心的肯定就是把这个10进制的数(num)转成13进制,但是它最多只有两位,所以高位就是 num / 13低位就是 num % 13,这不就是两个位置凑齐了??

还有个问题是,10-->A11-->B12-->C,所以用一个字符数组作为映射表就可以了。

比如 char c[14] = {"0123456789ABC"}, 然后把原本的输出 cout << num / 13 << num % 13 变成 cout << c[num / 13] << c[num % 13] 就搞定

代码

#include <iostream>
using namespace std;

int main() {
    // 作为映射表
    char c[14] = {"0123456789ABC"};
    // cout << "#";
    printf("#");
    for(int i = 0; i < 3; ++i) {
        int num;
        // cin >> num;
        scanf("%d", &num);
        // 转成13进制,两位,高位是 / 13,地位是 % 13
        cout << c[num / 13] << c[num % 13];
    }
    return 0;
}

以上是关于PAT1027 Colors in Mars (20分) 10进制转13进制的主要内容,如果未能解决你的问题,请参考以下文章

PAT 1027. Colors in Mars

PAT A1027 Colors in Mars

PAT 1027 Colors in Mars (20分)

PAT 甲级 1027 Colors in Mars (20 分)

PAT 甲级 1027 Colors in Mars (20 分)(简单,进制转换)

PAT Advanced 1027 Colors in Mars (20分)