zoukankan      html  css  js  c++  java
  • Programming Ability Test学习 1027. Colors in Mars (20)

    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
    

    提交代码

    注意0的情况。

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<cstdlib>
    #include<cstring>
    #include<string>
    #include<algorithm> 
    #include<map>
    #define MAXSIZE 100005
    typedef long long ll;
    
    using namespace std;
    
    
    int cmp(const void *a,const void *b)
    {
    	return *(int *)a-*(int *)b;
    }
    //十进制转换为13进制
    
    void Get13Radix(int A)
    {
    	int i=0;
    	char Res[10];
    	if(A==0){
    		cout<<"00";
    	}
    	while(A>0)
    	{
    		int k=A%13;
    		if(k>=0&&k<=9)Res[i++]=k+'0';
    		if(k>=10&&k<=12)
    		{
    			switch(k)
    			{
    				case 10:Res[i++]='A';break;
    				case 11:Res[i++]='B';break;
    				case 12:Res[i++]='C';break;
    				default:break;
    			}
    		}
    		A=A/13;
    	}
    	if(i==1){
    		Res[i]='0';i++;
    	}
    	
    	for(int j=i-1;j>=0;j--)
    	cout<<Res[j];
    } 
    
    
    int main()
    {
    	int R,G,B;
    	cin>>R>>G>>B;
    	cout<<"#";
        Get13Radix(R);
        Get13Radix(G);
        Get13Radix(B);
        cout<<endl;
        
    	return 0;
    } 
    

      

  • 相关阅读:
    感觉博客又要停一停了
    dockManager 添加DockPanel控件
    C# 线性渐变圆
    【Axure】母版引发事件
    【系统问题】windows10打印就蓝屏-报错误代码“win32kfull.sys”
    论扇形的绘制方式
    字符串可以使用substring等方法的原因解析
    深入理解作用域链
    实现fn(1,2)(3)(4).getSum(),使得最后输出值为实参的和即10
    函数里面for循环延迟打印引发的闭包问题
  • 原文地址:https://www.cnblogs.com/a842297171/p/4794573.html
Copyright © 2011-2022 走看看