python - 为什么我的输出是 0?

标签 python algorithm 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/

相关文章:

python - 每个 Flask session 存储大量数据或服务连接

python - python 中的格式化字符串

java - 给定 'getrand100()' 函数获取特定范围内的随机数

python - python装饰器中的foo=bar(foo)和something=bar(foo)有什么区别?

python - 埃拉托色尼递归筛不返回任何内容

python - 解释 numpy.fft.fft2 输出

c++ - 找出两组是否重叠的最快方法?

arrays - k-最大元素优化 Swift 3.0

python-2.7 - python 中嵌套循环中的平均值

在远程/虚拟机上运行的Python脚本