python用递归算法将一个十进制数 X 转换成任意进制数 M(M≤16)。输入格式 输入一行两个数,中间用空格分隔,第一个十进制数 X,第二个为进制 M。 输出格式 输出结果。 输入样例 31 16 {将十进制31转化为十六进制数} 输出样例 1F
时间: 2024-11-18 15:15:46 浏览: 3
递归实现十进制数从高位到低位依次输出
4星 · 用户满意度95%
在Python中,你可以使用递归函数来实现这个转换。递归算法的关键在于将大问题分解成更小的子问题,直到达到基本情况(即数值小于目标进制时),然后逐级合并结果。下面是一个简单的示例代码,它会将十进制数转换为十六进制:
```python
def decimal_to_base(x, m):
if x < m: # 基本情况:当x小于m时,它是m进制的最后一个位
return chr(x + ord('0')) if m == 16 else str(x) # 将数字转为字符,如果m=16代表十六进制
else:
return decimal_to_base(x // m, m) + str(x % m) # 递归调用并添加当前位
# 测试案例
x = 31
m = 16
hex_number = decimal_to_base(x, m)
print(hex_number) # 输出 "1F"
```
在这个例子中,`decimal_to_base` 函数接受两个参数 `x` 和 `m`,分别表示十进制数和目标进制。函数首先检查是否已经到达基本情况,如果是,则返回对应的字符(对于十六进制),如果不是,则继续递归,先处理高位。
阅读全文