200106 - 递归实现任意进制转换

时间限制

50 毫秒

内存限制

128 MB

通过次数

16

提交次数

42

标题可能有点大,任意进制也需要有对应的方法来表示比9大的数字。规定十一到十六进制:用A表示10,B表示11,C表示12,D表示13,E表示14,F表示15。但如果抛开用单个字符表示的问题,你写的程序应该能转换任意进制。

输入

一行,由单个空格分隔的两个整数xk,分别表示一个十进制数和目标进制。

对于100%的数据:

0\le x \le 1\cdot 10^{18} ;

2\le k \le 16

数据保证输入没有前导0。

输出

一行,一个字符串,表示xk进制表示形式。不得有多余的前导0。

样例

输入

123456789 2

输出

111010110111100110100010101

输入

9876543210 16

输出

24CB016EA

提示

思考如下问题:

1、转换的过程中,处理过程相同的子问题是什么?

2、处理子问题时,需要哪两个数据?(函数参数)

3、可不可以用一个全局数组保存每一位的结果?

4、何时调用自己,何时达到递归边界?(函数内的处理逻辑)

5、如何把0-16转化为'0'-'F'?