1.【题目描述】
【题目描述】
用递归算法将一个十进制数X转换成任意进制数M(M≤16)。
【输入】
一行两个数,第一个十进制数X,第二个为进制M。
【输出】
输出结果。
【输入样例】
31 16 {将十进制31转化为十六进制数}
【输出样例】
1F
2.【代码】
#include<bits/stdc++.h>
using namespace std;
int n,m,t=0;
char a[1000];
void fun(int n,int m)
{
if(n<m)
{
if(n>=10)
{
switch(n)
{
case 10:
a[t++]='A';
break;
case 11:
a[t++]='B';
break;
case 12:
a[t++]='C';
break;
case 13:
a[t++]='D';
break;
case 14:
a[t++]='E';
break;
case 15:
a[t++]='F';
break;
}
}
else
{
a[t++]=n+'40';
}
}
else
{
if(n%m>=10)
{
switch(n%m)
{
case 10:
a[t++]='A';
break;
case 11:
a[t++]='B';
break;
case 12:
a[t++]='C';
break;
case 13:
a[t++]='D';
break;
case 14:
a[t++]='E';
break;
case 15:
a[t++]='F';
break;
}
}
else
{
a[t++]=n%m+'40';
}
fun(n/m,m);
}
}
int main()
{
int n,m;
cin>>n>>m;
fun(n,m);
for(int i=t-1;i>=0;i--)
{
cout<<a[i];
}
return 0;
}
仅供参考!