题意:
给你3个RGB值,让你在13进制下进行转换。
可能会坑的地方:假如没有两位,只有一位,那么左边要补零。
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
string a;
int R, G, B;
char ans[199]="";
int t = 0;
void deep(int radix, int num)
{
if (num < radix)
{
if (num>=10)
ans[t++] = (char)(num - 10 + 'A');
else
ans[t++] = (char)(num + '0');
return;
}
deep(radix,num / radix);
num %= radix;
if (num>=10)
ans[t++] = (char)(num - 10 + 'A');
else
ans[t++] = (char)(num + '0');
}
void solve()
{
cin >> R >> G >> B;
deep(13, R);
if (t == 1)
{
ans[t] = ans[t-1];
ans[t-1] = '0';
t++;
}
deep(13, G);
if (t == 3)
{
ans[t] = ans[t - 1];
ans[t - 1] = '0';
t++;
}
deep(13, B);
if (t == 5)
{
ans[t] = ans[t - 1];
ans[t - 1] = '0';
t++;
}
cout << "#";
for (int i = 0; i < t; i++)
{
cout << ans[i];
}
}
int main()
{
solve();
return 0;
}