PTA (Advanced Level) 1027 Colors in Mars

Colors in Mars

  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

题目解析
  本题给出3个10进制数字要求转换为13进制数字并输出,根据题意我们可以得出,转化后的每一个数字都不会超过两位。

  这样我们可以将十进制数字0~12与对应13进制数字利用map建立映射。之后将每个数字对应输出即可。

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 map<int, char> radix;
 4 void init(){    //建立十进制数与对应13进制数的映射
 5     for(int i = 0; i < 10; i++)
 6         radix[i] = i + '0';
 7     radix[10] = 'A';
 8     radix[11] = 'B';
 9     radix[12] = 'C';
10 }
11 int main()
12 {
13     init();
14     int red, green, blue;   
15     scanf("%d%d%d", &red, &green, &blue);
16     //输入三个十进制数
17     //输出时先输出#
18     cout << "#" << radix[red / 13] << radix[red % 13];
19     //输出转化后的两位数
20     cout << radix[green / 13] << radix[green % 13];
21     cout << radix[blue / 13] << radix[blue % 13] << endl;
22     return 0;
23 }
posted @ 2019-01-26 15:26  suvvm  阅读(217)  评论(0编辑  收藏  举报