请编写程序实现: 1、定义一个递归函数fun(n,r),实现将十进制数n转换成r(2<=r<=16)进制数,转换的结果为函数的返回值。(注意r>10之后的处理方法) 2、在主程序中调用测试该函数。
时间: 2024-03-12 15:44:20 浏览: 33
好的,可以参考以下代码实现:
```python
def fun(n, r):
if n < r:
if n >= 10:
return chr(ord('A') + n - 10)
else:
return str(n)
else:
if n % r >= 10:
return fun(n // r, r) + chr(ord('A') + n % r - 10)
else:
return fun(n // r, r) + str(n % r)
# 测试
print(fun(10, 2)) # 输出1010
print(fun(15, 16)) # 输出F
print(fun(255, 16)) # 输出FF
```
在上述代码中,fun(n,r)函数使用递归的方式将十进制数n转换成r进制数。当n小于r时,直接将n转换成对应进制的字符或数字并返回。当n大于等于r时,先递归调用fun(n//r, r)将n除以r的商转换成对应进制,再将n除以r的余数转换成对应进制的字符或数字并与转换后的商拼接,最终返回拼接后的结果。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)