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
Each input file contains one test case which occupies a line containing the three decimal color values.
Output
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 the left.
Sample Input15 43 71Sample Output
#123456
import java.util.Scanner;
public class pat_1027 {
public static char rgb_Change(int rr){
char x = 0;
if(rr>9){
switch (rr) {
case 10:
x = 'A';
break;
case 11:
x = 'B';
break;
case 12:
x = 'C';
break;
}
}
return x;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int r = in.nextInt();
int g = in.nextInt();
int b = in.nextInt();
char R_1,R_2,G_1,G_2,B_1,B_2;
System.out.print("#");
int r_1 = r / 13;
if(r_1>9){
R_1 = rgb_Change(r_1);
System.out.print(R_1);
}else{
System.out.print(r_1);
}
int r_2 = r % 13;
if(r_2>9){
R_2 = rgb_Change(r_2);
System.out.print(R_2);
}else{
System.out.print(r_2);
}
int g_1 = g / 13;
if(g_1>9){
G_1 = rgb_Change(g_1);
System.out.print(G_1);
}else{
System.out.print(g_1);
}
int g_2 = g % 13;
if(g_2>9){
G_2 = rgb_Change(g_2);
System.out.print(G_2);
}else{
System.out.print(g_2);
}
int b_1 = b / 13;
if(b_1>9){
B_1 = rgb_Change(b_1);
System.out.print(B_1);
}else{
System.out.print(b_1);
}
int b_2 = b % 13;
if(b_2>9){
B_2 = rgb_Change(b_2);
System.out.print(B_2);
}else{
System.out.print(b_2);
}
}
}
十六进制RGB颜色转换原理:
http://jingyan.baidu.com/article/375c8e19babd4325f2a229ae.html
简单的说,就是R,G,B分别代表红绿蓝三个颜色(光的三原色)的十进制的值,然后将其转换成#和其十六进制的表示形式。#后一共有六位十六进制数,第一位是对应十进制数除以16取商,第二位是对应十进制数除以16取余,剩下数分别对应。
这个题是13进制。