题目描述
用递归算法将一个十进制数 X 转换成任意进制数 M(M≤16).
输入格式
一行两个数,第一个十进制数 X,第二个为进制 M.
输出格式
输出结果.
输入输出样例
输入 #1
31 16
输出 #1
1F
说明/提示
样例解释
将十进制 31 转化为十六进制数。
AC代码
#include <bits/stdc++.h>
using namespace std;
int x,m,s;
char a1[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int a2[1005];
void dfs(int num,int step)
{
if(num<m)
{
a2[step]=num;
s=step;
return;
}
int i=num%m;
a2[step]=i;
int j=num/m;
dfs(j,step+1);
}
int main()
{
cin>>x>>m;
dfs(x,1);
for(int i=s;i>=1;i--)
{
cout<<a1[a2[i]];
}
return 0;
}
测试点信息