回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>需要在不使用<code>+</code>运算符的情况下获得x和y的和</p>
<p>我用加法器求两个数的和。如果我们对x和y进行异或运算(<code>x ^ y</code>),我们将得到不带进位的和。从<code>x & y</code>我们可以得到进位。要添加此进位求和,请再次调用add函数。但它并没有给出答案。我的代码中的错误在哪里</p>
<pre><code>def add(a,b):
if a == 0:
return b
return add(a^b, a&b)
x = 10
y = 20
print(add(10, 20))
</code></pre>
<p><strong>错误:</strong></p>
<blockquote>
<p>File "main.py", line 4, in add </p>
<pre><code>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
</code></pre>
</blockquote>