gpt4 book ai didi

python - 俄罗斯农民乘法 Python 3.3

转载 作者:太空狗 更新时间:2023-10-29 23:59:49 24 4
gpt4 key购买 nike

我需要一个 python 3.3 程序的帮助,该程序应该执行俄罗斯农民乘法/古埃及乘法。作业说,“如果“A”和“B”是要相乘的两个整数,我们重复将“A”乘以 2 再将“B”除以 2,直到“B”不能再除且不为零(整数除法)。在每组乘“A”和除“B”的过程中,如果“B”的值是奇数,则将“A”的值添加到总数中。最后,总和所有“A”值(当“B”为奇数时)应等于原始“A”和“B”输入的乘积。简而言之,求和“B”为奇数的所有“A”值它将等于(或接近)“A”和“B”的乘积。

编辑

我可能对某些问题的表述有误。

这是一个例子:

如果“A”为 34,“B”为 19,则每行将“A”乘以二,将“B”除以二。

“A”“B”

(34) (19)(“B”是奇数,加“A”到总数)

(68) (9)(“B”是奇数,加“A”到总数)

(136) (4) (“B”为偶数,忽略“A”值)

(272) (2) (“B”为偶数,忽略“A”值)

(544) (1)(“B”是奇数,加“A”到总数)

当您对“A”的所有值求和时,“B”为奇数,您会得到 (34 + 68 + 544 = 646),这等于将“A”和“B”相乘,(34 * 19 = 646)。

当“B”为奇数时,我遇到的问题是将“A”加到总数中。

这是我目前的情况,

x = int(input("What is the first number? "))
y = int(input("What is the second number? "))
answer = 0

while y != 0:
if (y%2 != 0):
x*2
y//2
answer == answer + x
if (y%2 == 0):
x*2
y//2
print("the product is",(answer))

我是 python 和编程的新手,因此非常感谢任何帮助和/或解释为什么它的错误。

最佳答案

你需要先添加x来回答,然后再更新x

这是正确的代码

x = int(input("What is the first number? "))
y = int(input("What is the second number? "))
answer = 0

while y != 0:
if (y%2 != 0):
answer=answer+x
x=x*2
y=y//2
if (y%2 == 0):
x=x*2
y=y//2

print("the product is",(answer))

关于python - 俄罗斯农民乘法 Python 3.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14638078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com