前言

传送门

正文


思路

注意,在进制转换中常常用到使用字符数组的技巧,还有除基取余法

参考题解

#include<iostream>
#include<cstdio>
using namespace std;
/*
题意就是给三个十进制数,范围为(0—168),将其转为
13进制数,同时注意若转换后的13进制数只有一位,需要
在其左边补零,也就是至少两位 。
首先可以初始化一个map字符数组,用来映射每一位13进制数
同时注意每个十进制数最大为168,小于13^2;因此转换为13进制
数后,最多只有两位。 
*/
int main(){
	char map[]={'0','1','2','3','4','5','6','7','8','9','A','B','C'}; 
	int r,g,b;
	cin>>r>>g>>b;
	cout<<"#";
	cout<<map[r/13]<<map[r%13];
	cout<<map[g/13]<<map[g%13];
	cout<<map[b/13]<<map[b%13]<<endl; 
	return 0;
}