我目前正试图绕着学习Python来解决问题,而且我对递归函数有点拖延.在Think Python中,其中一个练习是编写一个函数,使用以下定义确定数字a是否是数字b的幂:
"数字a是b的幂,如果它可被b整除,a/b是b的幂.写一个叫做is_power的函数,它接受参数a和b,如果a是b的幂,则返回True."
我的功能的当前状态是:
def isPower(a,b):
return a % b == 0 and (a/b) % b == 0
print isPower(num1,num2)
Run Code Online (Sandbox Code Playgroud)
实际上,这会产生我期望的结果.然而本章的重点是编写递归函数以减少冗余,我不太确定如何将最终的"(a/b)%b == 0"转换为递归.我试过了:
def isPower(a,b):
if a % b != 0:
return False
elif isPower((a/b),b):
return True
Run Code Online (Sandbox Code Playgroud)
但那只是返回无.
递归这个函数的正确方法是什么?