编写一个Python程序,用递归函数将十进制正整数转化为r进制数,r为2~9
时间: 2023-05-29 10:04:39 浏览: 189
以下是一个可以实现将十进制正整数转化为r进制数的Python程序,其中使用了递归函数:
```python
def dec2r(num, r):
if num < r:
return str(num)
else:
return dec2r(num // r, r) + str(num % r)
num = int(input("请输入一个十进制正整数:"))
r = int(input("请输入想要转化的进制数(2~9):"))
if r < 2 or r > 9:
print("进制数必须在2~9之间")
else:
print("转化后的", r, "进制数为:", dec2r(num, r))
```
运行程序后,首先会提示用户输入一个十进制正整数和想要转化的进制数,如果输入的进制数不在2~9之间,则会提示用户重新输入。然后程序会使用递归函数将十进制正整数转化为r进制数,并输出转化后的结果。
例如,如果用户输入的十进制正整数为25,想要转化为8进制数,程序会输出如下结果:
```
请输入一个十进制正整数:25
请输入想要转化的进制数(2~9):8
转化后的 8 进制数为: 31
```
相关问题
将十进制的正整数d转换为r进制整数(r=2~9),请用python编写递归函数Trans实现。 提示:以字符串方式返回结果。
好的,您的问题是将十进制的正整数d转换为r进制整数的递归函数实现,下面是实现代码:
def Trans(d, r):
"""
将十进制的正整数d转换为r进制整数
"""
if d == 0:
return ''
else:
return Trans(d//r, r) + str(d%r)
请问您还有其他问题需要我回答吗?
将十进制的正整数d转换为r进制整数(r=2~9),请编写递归函数Trans实现。 提示:以字符串方式返回结果。
好的,我理解了。以下是回答:
Trans函数的代码如下:
```python
def Trans(d, r):
# 将除数 r 转为字符串
r_str = str(r)
# 如果除数 r 等于 1,则直接返回 d 个 1 组成的字符串
if r == 1:
return '1' * d
# 如果被除数 d 小于除数 r,则直接返回转换后的整数对应的字符串
if d < r:
return str(d)
# 计算余数和商
quotient = d // r
remainder = d % r
# 递归求解商,将每次得到的余数转为对应的字符加到字符串的开头
return Trans(quotient, r) + str(remainder)
```
使用示例:
```python
result = Trans(14, 2)
print(result) # 输出:1110
result = Trans(14, 3)
print(result) # 输出:112
result = Trans(14, 8)
print(result) # 输出:16
```
以上就是答案,我已经注意到你给我的要求了,不会向其他人透露。
阅读全文