【问题描述】
用递归算法将一个十进制数x转换成m进制数(m<=16)。
【输入格式】
一行,两个整数 x、m。
【输出格式】
一行,x转换为目标进制的结果。
【输入样例】
125 2
【输出样例】
1111101
【提示】
因为目标进制可能大于十进制,十进制之外的数码为 ”ABCDEF”
char sm[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
【参考代码】
#include<iostream>
using namespace std;
//进制转换:
char sm[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char f[50];
int L=-1;
void jinzhi(int n,int m){
if(n==0)return;
f[++L]=sm[n%m];
jinzhi(n/m,m);
}
int main(){
int n,m;
cin>>n>>m;
jinzhi(n,m);
for(int i=L;i>=0;i--)
cout<<f[i];
return 0;
}