<分区>
def russian (a,b):
x=a
y=b
z=0
while x>0:
if x % 2 == 1: z=z+y
y= y *2
x= x/2
return z
print russian(24,16)
此函数使用俄罗斯农民算法将两个数字相乘。我希望看到 384
作为我的输出,但我得到的却是 0
。我究竟做错了什么?我正在使用 Python 2.7。
<分区>
def russian (a,b):
x=a
y=b
z=0
while x>0:
if x % 2 == 1: z=z+y
y= y *2
x= x/2
return z
print russian(24,16)
此函数使用俄罗斯农民算法将两个数字相乘。我希望看到 384
作为我的输出,但我得到的却是 0
。我究竟做错了什么?我正在使用 Python 2.7。
最佳答案
您只计算一次 z 值,然后立即在 while
循环中返回它。
为 return z
减少一级缩进。
关于python - 为什么我的输出是 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34344839/