【发布时间】:2019-09-17 13:18:47
【问题描述】:
我正在尝试获取两个输入,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?
【问题讨论】:
-
在第一次迭代中检查 if 语句之前,您正在划分您的数字。在对 a 和 b 进行任何操作之前,您需要检查条件。
标签: python python-3.x for-loop if-statement while-loop