uTank-木头
每一个你不满意的现在,都有一个你没有努力的曾经。

【题目链接】

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

问题分析:

实际问题就是把10进制数转换为13进制数。

提交代码:

 1 #include <stdio.h>
 2 
 3 int decimal_to_other(int decimal, int base, char *other, int size)
 4 {
 5     char str[256];
 6     int i, len, tmp;
 7 
 8     len = 0;
 9 
10     //while(decimal != 0)
11     do {
12         tmp = decimal % base;
13         if(tmp >= 10)
14         {
15             str[len] = tmp - 10 + 'A'; 
16         }
17         else
18         {
19             str[len] = tmp + '0';
20         }
21         len++;
22         decimal /= base;
23     } while(decimal != 0);
24 
25     for(i = 0; i < len && i < size-1; i++)
26     {
27         other[i] = str[len-1-i];
28     }
29 
30     other[i] = '\0';
31 
32     return len;
33 }
34 
35 int main(void)
36 {
37     int R, G, B;
38     int rl, gl, bl;
39     char r[10];
40     char g[10];
41     char b[10];
42 
43     scanf("%d %d %d", &R, &G, &B);
44 
45     rl = decimal_to_other(R, 13, r, sizeof(r)/sizeof(r[0]));
46     gl = decimal_to_other(G, 13, g, sizeof(g)/sizeof(g[0]));
47     bl = decimal_to_other(B, 13, b, sizeof(b)/sizeof(b[0]));
48 
49     printf("#");
50 
51     if(rl == 1)
52         printf("0");
53     printf("%s", r);
54 
55     if(gl == 1)
56         printf("0");
57     printf("%s", g);
58 
59     if(bl == 1)
60         printf("0");
61     printf("%s", b);
62  //printf("#%s%s%s", r, g, b);
63     
64     return 0;
65 }

 

posted on 2015-09-01 14:16  uTank  阅读(225)  评论(0编辑  收藏  举报