将十进制非负整数N转换为R进制数的代码
时间: 2024-10-10 07:12:23 浏览: 34
顺序栈将一个非负的十进制整数N转换为对应的B进制数。
5星 · 资源好评率100%
将十进制非负整数N转换为任意基数R(R >= 2)的表示通常涉及“除以R并取余”的过程,直到商为0。这个过程可以用循环实现,同时记录下每个步骤的余数,最后将这些余数倒序排列就是R进制的结果。以下是一个简单的Python代码示例:
```python
def decimal_to_base(N, R):
if N == 0:
return '0'
digits = [] # 存储结果的列表
while N > 0:
digit = N % R
digits.append(str(digit)) # 转换成字符串形式
N //= R # 除法并向下取整
# 由于倒序操作,从后向前拼接结果
return ''.join(digits[::-1])
# 示例
print(decimal_to_base(45, 7)) # 输出:131 (因为45 = 1 * 7^2 + 3 * 7^1 + 1 * 7^0)
```
在这个代码里,`decimal_to_base`函数接收两个参数,一个是待转换的十进制数`N`,另一个是要转换的目标基数`R`。通过不断取余和整除,最后返回的是一个字符串形式的R进制数。
阅读全文