phthon123编写函数:把任意十进制整数n转换成k进制数(不使用递归)
时间: 2024-11-06 16:15:03 浏览: 3
进制转换 把一个任意的十进制正整数 N 转换成 d 进制数。 N 是一个正整数,d 是一个大于 1 小于 10 的整数,二者均由用户输入,且两数字用换行分隔。
Python 中可以使用内置的 `bin()` 和 `int()` 函数来实现非递归形式的十进制转任意进制的功能,但对于一般 k 进制转换,我们可以创建一个自定义函数来完成。下面是一个示例函数 `decimal_to_base_k`,它接受两个参数:整数 `n` 和基数 `k`:
```python
def decimal_to_base_k(n, k):
if n == 0:
return '0'
else:
digits = []
while n > 0:
remainder = n % k
digits.append(str(remainder))
n //= k
# 将余数组合成字符串并反转,因为最低位在最前面
return ''.join(digits[::-1])
# 使用例子
print(decimal_to_base_k(123, 7)) # 输出 "162" (123 对于基数 7 的表示)
```
这个函数通过循环不断取模得到当前的数字,并将其添加到结果列表中,然后更新原数 `n` 除以基数后的商继续循环。当 `n` 变为 0 时,说明已经得到了所有的位数,最后将这些位数按顺序组成字符串返回。
阅读全文