1027. Colors in Mars (20)
原创
©著作权归作者所有:来自51CTO博客作者datrilla的原创作品,请联系作者获取转载授权,否则将追究法律责任
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
3个10进制数,范围0-168,把它用转换撑用13进制表示的RGB且每个要占两位
评测结果
测试点
测试点
| 结果
| 用时(ms)
| 内存(kB)
| 得分/满分
|
0
| 答案正确
| 1
| 180
| 10/10
|
1
| 答案正确
| 1
| 436
| 2/2
|
2
| 答案正确
| 1
| 308
| 2/2
|
3
| 答案正确
| 1
| 308
| 2/2
|
4
| 答案正确
| 1
| 308
| 2/2
|
5
| 答案正确
| 1
| 300
| 2/2
|
#include<iostream>
#include<string>
using namespace std;
char getRadix(int num)
{
if (num <= 9)
return num + '0';
return num + 'A' - 10;
}
int main()
{
int red, green, blue;
cin >> red >> green >> blue;
cout << "#";
cout << getRadix(red / 13)<< getRadix(red % 13) << getRadix(green / 13) << getRadix(green % 13)<< getRadix(blue / 13)<< getRadix(blue % 13) << endl;
system("pause");
return 0;
}
================================================
#include<iostream>
#include<string>
using namespace std;
char getRadix(int num)
{
if (num <= 9)
return num + '0';
return num + 'A' - 10;
}
int main()
{
int red, green, blue;
string RGB;
cin >> red >> green >> blue;
RGB+= getRadix(red / 13) ;
RGB += getRadix(red % 13);
RGB += getRadix(green / 13);
RGB += getRadix(green % 13);
RGB += getRadix(blue / 13);
RGB += getRadix(blue % 13);
cout << "#" << RGB << endl;
system("pause");
return 0;
}
=========================================================
#include<iostream>
#include<string>
using namespace std;
string getRadix(int num)
{
char c;
string str;
if (num <= 9)
c= num + '0';
else c= num + 'A' - 10;
str = c ;
return str;
}
int main()
{
int red, green, blue;
string RGB;
cin >> red >> green >> blue;
RGB= getRadix(red / 13)+getRadix(red % 13)+getRadix(green / 13) + getRadix(green % 13) + getRadix(blue/13) + getRadix(blue%13);
cout << "#" << RGB << endl;
system("pause");
return 0;
}
====================================
下面的这个在pat上面是不可以的,在vs2013社区版可以。想了想,我当初做的数据库用的是C#,有的用中文命名,感觉在其他环境下可能动不了。
#include<iostream>
#include<string>
using namespace std;
char 转成十三进制(int 目标)
{
if (目标 <= 9)
return 目标 + '0';
return 目标 + 'A' - 10;
}
int main()
{
int 红, 绿, 蓝;
cin >> 红>>绿>>蓝;
cout << "#";
cout << 转成十三进制(红 / 13) << 转成十三进制(红 % 13) << 转成十三进制(绿 / 13) << 转成十三进制(绿 % 13) << 转成十三进制(蓝 / 13) << 转成十三进制(蓝 % 13) << endl;
system("pause");
return 0;
}