Conversion of Integers to Strings in Arbitrary Bases
本題尋求一種將整數轉換為任意基數字串的方法。與 Python 的 int(str, base) 函數不同,該函數允許從指定基數的字串建立整數,所需的方法是其逆過程,即從整數建構字串。
一個簡單的解決方案
直觀上,人們傾向於關注轉換為小基數(例如,小於英文字母的長度)。然而,這個問題需要一個通用的解決方案,適用於從 2 到無限大的任何基數。
下面給出一個簡單的解:
def numberToBase(n, b): if n == 0: return [0] digits = [] while n: digits.append(int(n % b)) n //= b return digits[::-1]
這個函數接受一個整數 n 和一個基數 b 作為輸入並傳回以 b 為基數表示 n 的數字列表。它的工作原理是迭代地將 n 除以 b 並將餘數(即數字)收集到列表中。然後反轉列表以獲得正確的數字順序。
例如,將 67854**15 - 102 轉換為基數 577:
print(numberToBase(67854 ** 15 - 102, 577))
輸出:
[4, 473, 131, 96, 431, 285, 524, 486, 28, 23, 16, 82, 292, 538, 149, 25, 41, 483, 100, 517, 131, 28, 0, 435, 197, 264, 455]
這個結果可以進一步轉換成任何其他想要的
關鍵點
以上是如何將整數轉換為任意基數的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!