# 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


1.前面加“”#“”

2.每个转化成13进制后的数字都是两位数，不够两位数的补零

#include <bits/stdc++.h>

using namespace std;
int num[10005];
char col[3]= {'A','B','C'};

void f(int a)                ///随便起的名字，作用：打印数字
{
memset(num,0,sizeof(num));
int k=0;
while(a!=0)
{
num[k++] = a%13;
a = a/13;
}
if(k==1)
{
if(num[0]<=9)
{
cout<<0<<num[0];
}else
{
cout<<0<<col[num[0]-10];
}
}
else
{
for(int i=k-1; i>=0; i--)
{
if(num[i]>9)
{
cout<<col[num[i]-10];
continue;
}
cout<<num[i];
}
}

}
bool pd(int x)                        ///由于上面f函数的局限性，用来判断x是否为零
{
if(x==0)
return false;
return true;
}
int main()
{
int a,b,c;
cin>>a>>b>>c;
cout<<"#";
if(pd(a))
f(a);
else
cout<<0<<0;
if(pd(b))
f(b);
else
cout<<0<<0;
if(pd(c))
f(c);
else
cout<<0<<0;
return 0;
}


• 评论

• 上一篇
• 下一篇