• PAT 1027 Colors in Mars (20分)


    题目

    题目链接PAT A1027 Colors in Mars (20分)

    解题思路

    思路01

    1 进制转换。十进制转换为十三进制
    2 如果转换后是一位前面补充一位0

    思路02

    根据题目已知,十进制数字最大为168(对应十三进制为CC),可知转换为十三进制后最大为CC,所以转换后一定是两位,x/13 x%13(x为十进制数)

    易错点

    当某种颜色转换为十三进制后,如果是一位数字,需在前面补充一位0

    知识点

    1 进制转换
    2 字符串拼接字符串

    单词

    digit 数字(可数)
    decimal 十进制的;小数
    radix 基数;根

    Code

    Code 01

    #include <iostream>
    #include <algorithm>
    using namespace std;
    const int p = 13;
    /*
    	十进制转十三进制 
    */
    string convert(int x){
    	string s;
    	int temp;
    	do{
    		temp = x%p;
    		if(temp>=10)s+=temp-10+'A';
    		else s+=temp+'0';
    		x /= p;
    	}while(x!=0);
    	if(s.length()==1)s.append("0");
    	reverse(s.begin(),s.end());
    	return s;
    }
    int main(int argc,char * argv[]) {
    	int r,g,b;
    	scanf("%d%d%d",&r,&g,&b);
    	string rs = convert(r);
    	string gs = convert(g);
    	string bs = convert(b);
    	rs.append(gs).append(bs);
    	printf("#%s",rs.c_str());
    	return  0;
    }
    

    Code 02

    #include <iostream>
    #include <string>
    using namespace std;
    /*
    1. char 字符数组定义初始化
    */
    int main(int argc,char *argv[]) {
    	char c[14]= {"0123456789ABC"};
    	int num;
    	cout<<"#";
    	for(int i=0; i<3; i++) {
    		cin>>num;
    		printf("%c%c",c[num/13],c[num%13]);
    	}
    	return 0;
    }
    
  • 相关阅读:
    1009 说反话 (20 分)
    1007 素数对猜想 (20 分)
    Visual Studio2017下载方法
    百词斩和扇贝打卡测试与评估
    创建者模式->工厂模式
    STM32F427|----------IO讲解与应用
    MySQL的索引
    STM32F103RCt6 与 MG996R
    2020物联网实验室的考核题目
    初学数据库-MySQL&IDEA&Navicat
  • 原文地址:https://www.cnblogs.com/houzm/p/13337194.html
Copyright © 2020-2023  润新知