gpt4 book ai didi

python - python中没有+运算符的求和

转载 作者:行者123 更新时间:2023-12-03 16:11:16 24 4
gpt4 key购买 nike

需要获取没有+运算符的x和y的和。

我试图用加法器将两个数字求和,如果我们对x和y(x ^ y)进行xor,我们将得到求和而不加进位从x & y我们可以进行携带。要添加此进位求和,请再次调用add函数。但它没有给出答案。我的代码中的错误在哪里。

def add(a,b):
if a == 0:
return b
return add(a^b, a&b)

x = 10
y = 20
print(add(10, 20))

错误:

File "main.py", line 4, in add

return add(a^b, a&b)                                                                                                                          File "main.py", line 4, in add                                        

return add(a^b, a&b) File "main.py", line 4, in add

return add(a^b, a&b) File "main.py", line 4, in add

return add(a^b, a&b) File "main.py", line 4, in add

return add(a^b, a&b) File "main.py", line 4, in add

return add(a^b, a&b) File "main.py", line 4, in add

return add(a^b, a&b) File "main.py", line 4, in add

return add(a^b, a&b) File "main.py", line 4, in add

return add(a^b, a&b) File "main.py", line 2, in add

if a == 0: RuntimeError: maximum recursion depth exceeded in comparison

最佳答案

您还必须转移进位:

def add(a,b):
if a == 0:
return b
if b == 0:
return a
return add(a^b, (a&b) << 1)

x = 3
y = 2
print(add(x, y))
# 5

关于python - python中没有+运算符的求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61848917/

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