Python递归练习

1 投票
9 回答
4374 浏览
提问于 2025-04-16 08:27

我在做Singpath的练习,遇到一个问题卡住了。这道题在递归练习里,但我完全不明白题目是什么意思。

一个数字 a 如果是 b 的幂,意味着它能被 b 整除,并且 a/b 也是 b 的幂。
请写一个叫 is_power 的函数,它接收参数 ab,如果 ab 的幂,就返回 True

更新:

我刚想到答案,已经把它发在下面了。

9 个回答

1

想想看,如果你给它,比如说a=32和b=2,会发生什么。b*b会给你4、16、256……

所以,在你递归调用函数的时候,你得记住原来的b是什么。你可以用一个默认值的第三个变量(original_b)来保存它,但其实有一种方法可以不改变b的值。

1

这是一个关于幂的递归定义。你需要写一个函数

def is_power(a, b):
  ...

这个定义给出了一个一般性的特性。它提示了终止条件。如果a和b相等,那么这个函数应该返回真。

0

这是我的回答...

def is_power(a,b):
    if(a%b != 0):
        return False
    elif(a/b == 1):
        return True
    else:
        return is_power(a/b,b)

撰写回答