Python递归练习
我在做Singpath的练习,遇到一个问题卡住了。这道题在递归练习里,但我完全不明白题目是什么意思。
一个数字
a
如果是b
的幂,意味着它能被b
整除,并且a/b
也是b
的幂。
请写一个叫is_power
的函数,它接收参数a
和b
,如果a
是b
的幂,就返回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)