以下是使用 Python 语言编写的将十进制整数 n 转换为进制数的函数,不使用递归:

def decimal_to_base(n, base):
    '将十进制整数 n 转换为任意进制数'
    if not isinstance(n, int) or not isinstance(base, int):
        return None
    if base < 2 or base > 36:
        return None
    digits = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    result = ''
    while n > 0:
        digit = n % base
        result = digits[digit] + result
        n //= base
    return result if result else '0'

该函数接受两个参数:要转换的十进制整数 n 和要转换的进制数 base。如果 n 或 base 不是整数,函数将返回 None。如果 base 不在 2 到 36 的范围内,函数也将返回 None。

函数使用 digits 字符串来表示数字字符。例如,digits[0] 表示数字 0,digits[10] 表示字母 A,依此类推。

函数使用一个 while 循环,将 n 转换为 base 进制数。在每一次循环中,取 n 除以 base 的余数,并将其对应的数字字符添加到结果字符串的开头。然后将 n 除以 base 向下取整,以便在下一次循环中处理更高位的数字。

最后,如果结果字符串为空,则返回字符串 '0'。否则,返回转换后的进制数。

Python 函数:十进制整数转换为任意进制数 (无递归)

原文地址: https://www.cveoy.top/t/topic/ohOk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录