【发布时间】:2015-06-11 09:44:36
【问题描述】:
我正在尝试使用递归来确定一个数字是否是 2 的幂。但是,我似乎无法找出正确的解决方案。到目前为止,这是我尝试过的:
def is_power(n):
n = n/2
if n == 2:
return True
elif n > 2:
is_power(n)
else:
return False
if is_power(32):
print 'yes'
else:
print 'no'
由于“32”是 2 的幂,我希望我的代码返回“是”作为输出。但是,代码改为输出“否”。我的代码似乎有什么问题?
【问题讨论】:
-
提示:你已经(或多或少)实现了
is_even,而不是is_power(至少,在Python 3中)。 -
这里 1 不算作你的答案吗(即
2**0)?
标签: python python-2.7 recursion