python - 考虑最终产品的原始输入

标签 python python-3.x for-loop if-statement while-loop

我正在尝试获取两个输入 a 和 b,并执行一个操作。我的代码如下:

a = int(input("Enter an integer A to be multiplied: "))
b = int(input("Enter an integer B to be multiplied: "))
x = 0

while True:
    print(a, b)
    b //= 2
    a *= 2
    if b < 1:
        break
    if b % 2 == 1:
        new = [a]
        for i in new:
            x += i
print(x)

如果我输入 34 和 19,输出是:

Enter an integer A to be multiplied: 34
Enter an integer B to be multiplied: 19
34 19
68 9
136 4
272 2
544 1
612

答案应该是 646,因为 19%2 的余数是 1。为什么我的代码在执行第二个 if 语句时不考虑 34、19?

最佳答案

您在检查之前更改变量,因此,您正在检查 b//2a*2

您可以将它们分配给临时变量或稍微更改您的代码:

a = int(input("Enter an integer A to be multiplied: "))
b = int(input("Enter an integer B to be multiplied: "))
x = 0

while True:
    print(a, b)
    if b % 2 == 1:
        new = [a]
        for i in new:
            x += i
    b //= 2
    a *= 2
    if b < 1:
        break

print(x)

关于python - 考虑最终产品的原始输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55894494/

相关文章:

python - 可以从命名空间对象生成自动完成吗?

r - 使用一次分割回归而不是循环从数百个回归中提取系数?

python - 我的摄像头实时直方图

python - 无法通过 Mac High Sierra 上的 gi.repository 在 python 中导入 WebKit

python - Spark 1.5.2 + Hadoop 2.6.2 spark-submit 和 pyspark 不使用独立的所有节点

python - Kmeans 返回的集群可视化

Swift:for 循环中延迟的动画不起作用?

javascript - 在这段特定的 JavaScript 代码中返回一个函数有什么意义?

python - 你能在 python 中的字典上使用 while 循环吗?

python - ''tuple unpacking is not supported in Python3' ' 错误