python - 如何将 int 转换为以 9 为基数且不含 0 的 int?

标签 python int radix

如何将数字转换为 base9 中的等值数字,但要注意其 base9 没有“0”数字。

例如:
Base10 = 0, 1, 2, 3, .. 9, 10, 12 ... 28, 29, 30, ... 62, 63, 64, 等等
Base9 = N/A、1、2、3、.. 9、11、12 ... 31、32、33、... 68、69、71 等

我希望能够获取一个普通的十进制数(例如:10)并以 base9 形式返回它,忽略 0 位置(例如:11)。

我对 python 和编程都很陌生,更不用说我在数学方面缺乏知识,所以我的第一次尝试相当草率。它只适用于较小的数字,我感觉有一种更简单的方法可以做到这一点。

def base9(x):
    count = 0
    a = xrange(10,100,9)
    while count != x:
        if x < a[count]:
            return x + count
        count += 1


print base9(10)

最佳答案

将数字转换为普通基数9。然后将最低位数字加1,以及除了最高位数字之外的所有其他数字(这意味着当数字长度为1位时,我们为它加1 )。

例如

  • 12 -> 13(正常基数 9) -> 14(修改基数 9)
  • 9 -> 10(正常基数 9) -> 11(修改基数 9)
  • 100 -> 121(正常基数 9) -> 132(修改基数 9)

关于python - 如何将 int 转换为以 9 为基数且不含 0 的 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18572534/

相关文章:

python - 循环调用Python中的异常绕过

assembly - 英特尔 x86_64 程序集 : What is good way to convert 32bit integer to 64bit int?

java - Java 中客户搜索的 Radix(Trie) 树实现

python - 将带有列表的嵌套字典展开到 pandas DataFrame 中

Python:使用 `pickle`或 `marshal`与使用 `re`的性能比较

c - 将整数数组传递给需要 C 中字符的函数

c - 如何在C中找到一棵特里树的高度

c++ - 构造函数C++的 super 与子类继承

python - 生成 SQL "IN"子句 : how to safely handle input + empty value lists?

c - 赋值从指针生成整数而不进行强制转换 [-Werror]