10进制转化成x进制的板子
作者:
never1
,
2024-07-04 20:36:21
,
所有人可见
,
阅读 3
#include <bits/stdc++.h>
using namespace std;
//由于要把10以上的进制用字母表示,因此预先处理一个字符串,方便取数
string c="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
//把a转化成b进制的数:短除法+倒取余数
/*
13/3=4,13%3=1;
4/3=1 4%3=1;
1/3=0 1%3=1;
因此13的三进制表示为111;
*/
//使用后序遍历的递归恰好是倒序输出
void trans(int a,int b)
{
if(a/b) trans(a/b,b);
cout<<c[a%b]; //相当于后序中的visit;
}
//把10进制转化成k进制,并最终返回string类型;
string tok(int x,int y){
if(x/y) tok(x/y,y);
a +=c[x%y];
return a;
}
int main(){
//
int a;
cin>>a;
int b;
cin>>b;
trans(a,b);
return 0;
}