Programming Ability Test学习 1027. Colors in Mars (20) 1027. Colors in Mars (20)

Programming Ability Test学习 1027. Colors in Mars (20)
1027. Colors in Mars (20)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
16000 B
判题程序
Standard
作者
CHEN, Yue

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 Input
15 43 71
Sample Output
#123456

提交代码

注意0的情况。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<string>
#include<algorithm> 
#include<map>
#define MAXSIZE 100005
typedef long long ll;

using namespace std;


int cmp(const void *a,const void *b)
{
	return *(int *)a-*(int *)b;
}
//十进制转换为13进制

void Get13Radix(int A)
{
	int i=0;
	char Res[10];
	if(A==0){
		cout<<"00";
	}
	while(A>0)
	{
		int k=A%13;
		if(k>=0&&k<=9)Res[i++]=k+'0';
		if(k>=10&&k<=12)
		{
			switch(k)
			{
				case 10:Res[i++]='A';break;
				case 11:Res[i++]='B';break;
				case 12:Res[i++]='C';break;
				default:break;
			}
		}
		A=A/13;
	}
	if(i==1){
		Res[i]='0';i++;
	}
	
	for(int j=i-1;j>=0;j--)
	cout<<Res[j];
} 


int main()
{
	int R,G,B;
	cin>>R>>G>>B;
	cout<<"#";
    Get13Radix(R);
    Get13Radix(G);
    Get13Radix(B);
    cout<<endl;
    
	return 0;
}