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;
}

原文链接: https://www.cnblogs.com/houzm/p/13337194.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    PAT 1027 Colors in Mars (20分)

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/368005

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 下午6:10
下一篇 2023年3月2日 下午6:10

相关推荐