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 Input15 43 71Sample Output#1234563个10进制数,范围0-168,把它用转换撑用13进制表示的RGB且每个要占两位
比如 6十进制变换后06十三进制
12十进制变换后0C十三进制
13十进制变换后10十三进制
下面的三个代码在测试中的效果一样
评测结果
时间 | 结果 | 得分 | 题目 | 语言 | 用时(ms) | 内存(kB) | 用户 |
---|---|---|---|---|---|---|---|
8月01日 10:20 | 答案正确 | 20 | 1027 | C++ (g++ 4.7.2) | 1 | 436 | datrilla |
测试点
测试点 | 结果 | 用时(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; }