题意分析:
(1)水题:给出三个(0~168)十进制数,转换成13进制的数(0~9,A=10,B=11,C=12)按格式输出
(2)进制转换使用除留余数法,对于余数大于9的需要变化成对应字符
可能坑点:
(1)当转换后只有一位的时候,需要补全前导0
#include <iostream>
#include <string.h>
using namespace std;
void transToMars(int num)
{
if(num==0)
{
cout<<"00";
return;
}
string res="";
int temp;
while(num!=0)
{
temp=num%13;
if(temp>=0&&temp<=9)res+=temp+'0';
else res+=temp-10+'A';
num/=13;
}
if(res.length()<2)
{
cout<<"0"<<res[res.length()-1];
return;
}
else
{
cout<<res[res.length()-1]<<res[0];
return;
}
}
int main()
{
int R,G,B;
cin>>R>>G>>B;
cout<<"#";
transToMars(R);
transToMars(G);
transToMars(B);
return 0;
}

本文介绍了一个简单的程序,用于将RGB颜色值转换为13进制表示形式。程序采用除留余数法进行转换,并针对特殊情况进行处理,如结果只有一位时补全前导0。适用于学习基本的颜色编码和进制转换。
466

被折叠的 条评论
为什么被折叠?



