Skip to main content
 首页 » 编程设计

python之将数字的基数更改为给定数字

2025年05月04日9sxdcgaq8080

我必须编写一个递归函数,它在 10 基数中获取一个数字 (n) 并将其转换为给定的数字基数 (k) 并返回一个列表,其组件是最终数字,例如 f (5, 3) 必须产生 [1, 2] 以 3 为基数的 5 是 12,或者 f(22, 3) 必须产生 [2, 1, 1].

这是我试过的代码:

def cb(n, k): 
    b = [] 
    if n == 0: 
        b.append(0) 
    if n < k: 
        b.append(n) 
    if n == k: 
        b.append(10) 
    else: 
        a = n // k 
        b.append(n - ((n // k) * k)) 
        if a < k: 
            b.append(a) 
        else: 
            cb(a, k) 
 
    return b 
 
print(cb(22, 3)) 

其实我想了很多,但是因为我不太擅长写代码,所以我不能再进一步了。感谢您对我的代码的帮助和修改。

请您参考如下方法:

如果您从递归的角度考虑,基本情况是 n < k。答案是n并获取 n 的最后一位数字你做n%k所以递归的情况是cb(n//k,k)+[n%k] .

代码看起来像这样:

def cb(n, k): 
    if n < k: 
        return [n] 
    else: 
        return cb(n//k, k) + [n%k] 
 
print(cb(22, 3))