标签:字符串拼接 std c_str argv dig space convert scanf temp
题目链接PAT A1027 Colors in Mars (20分)
1 进制转换。十进制转换为十三进制
2 如果转换后是一位前面补充一位0
根据题目已知,十进制数字最大为168(对应十三进制为CC),可知转换为十三进制后最大为CC,所以转换后一定是两位,x/13 x%13(x为十进制数)
当某种颜色转换为十三进制后,如果是一位数字,需在前面补充一位0
1 进制转换
2 字符串拼接字符串
digit 数字(可数)
decimal 十进制的;小数
radix 基数;根
#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;
}
#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;
}
标签:字符串拼接 std c_str argv dig space convert scanf temp
原文地址:https://www.cnblogs.com/houzm/p/13337194.html