【题目描述】
用递归算法将一个十进制数X转换成任意进制数M(M≤16)。
【输入】
一行两个数,第一个十进制数X,第二个为进制M。
【输出】
输出结果。
【输入样例】
31 16 {将十进制31转化为十六进制数}
【输出样例】
思路
将1进制到9进制一起转换,10进制到16进制一起转换
代码
#include<bits/stdc++.h>
using namespace std;
string jinzhi(int n,int m)//进制转换
{
string s="";
if(n==0)
{
return "0";
}
if(m<10)
{
char c;
int x;
while(n!=0)
{
x=n%m;
c=x+'0';
s=c+s;
n/=m;
}
}
else
{
char c;
int x;
while(n!=0)
{
x=n%m;
if(x<10) {
c=x+'0';
} else {
c=x-10+'0'+m+1;
}
s=c+s;
n=n/m;
}
}
return s;
}
int main()
{
int n,m;
cin>>n>>m;
cout<<jinzhi(n,m);
return 0;
}