【题目描述】
用递归算法将一个十进制数X转换成任意进制数M(M≤16)。
【输入输出样例】
输入:
31 16(把十进制的31转换成16进制)
输出:
1F(用短除法可以很快做到)
【解题技巧】
把短除法使用在代码里,注意10进制以上会有字母的出现,所以建议用char。
【源代码】
#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<cstring>
#include<iomanip>
#include<cmath>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
#include<queue>
using namespace std;
char d[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int t(int n,int k){//将十进制数n转换为k进制数
int s;
s=n%k;//进制转换
n=n/k;
if(n!=0){//判断是否到达递归边界:n=0,否则继续递归
t(n,k);
}
cout<<d[s];
return 0;
}
int main(){
int x,m;
cin>>x>>m;
t(x,m);
return 0;
}
//♂_The_LYH_25_♂