B2143 进制转换
StarryWander · · 题解
如题本题采用递归形式进制转换。
前置知识:短除法。
分析:
-
通过短除法取余数,再将余数倒序输出即可。
-
对于倒序输出,可以在递归的时候,最后输出余数,这样余数就会倒序输出了。
-
注意,十进制下除以大于等于
10 的数会出现两位数的情况,所以需要一个字符串来转换成对应的字母。
#include<bits/stdc++.h>
#define ll long long
using namespace std;
string c="0123456798ABCDEF";//对应字符。
void f(int x,int m){
if(x/m) f(x/m,m);//继续递归。
cout<<c[x%m];//倒序输出。
}
int main(){
int x,m;
cin>>x>>m;//输入。
f(x,m);//递归。
return 0;
}