zoukankan      html  css  js  c++  java
  • PAT (Advanced Level) Practise:1027. Colors in Mars

    【题目链接】

    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] = '';
    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 }
  • 相关阅读:
    一篇关于兼容问题的基础总结
    js数组遍历some,foreach,map,filter,every对比
    webpack笔记1
    前段集成解决方案grunt+yeoman初步认识
    简单的Linq笔记
    .net 使用Json(),maxJsonLength属性设置的值问题
    .net using使用小结
    根据某个字段的长度,且不包含”,“,作为条件查询
    JS Replace() 全部替换字符的用法
    SQL分页查询,纯Top方式和row_number()解析函数的使用及区别
  • 原文地址:https://www.cnblogs.com/utank/p/4775577.html
Copyright © 2011-2022 走看看