需要对0特判,即为0的时候直接输出0
c++版:
#include <iostream>
using namespace std;
const int maxn = 2000;
char c[] ={"0123456789ABCDEFGHIJKLHIMNOPQRSTUVWXYZ"};
int num = 16; ///10进制->16进制
char a[maxn]; ///结果数组
int cnt;
void hix(int x){
if(x)
hix(x/num);
a[cnt++] = c[x%16];
}
int main()
{
int n;
cin >> n;
hix(n);
cout << a+1 <<endl;
return 0;
}
c语言版:
#include <stdio.h>
const int maxn = 2000;
char c[] ={"0123456789ABCDEFGHIJKLHIMNOPQRSTUVWXYZ"};
int num = 16; ///10进制->16进制
char a[maxn]; ///结果数组
int cnt;
void hix(int x){
if(x)
hix(x/num);
a[cnt++] = c[x%num];
}
int main()
{
int n;
scanf("%d",&n);
hix(n);
printf("%s",a+1);
return 0;
}