我需要编写函数 mult( n, m ) 来输出两个整数 n 和 m 的乘积。我仅限于使用加法/减法/否定运算符以及递归。
这是我到目前为止:
def mult( n, m ):
if m == 0:
return 0
elif m < 0:
return n - n(m+1)
else:
return n + n(m-1)
有人可以帮助我吗,因为我无法弄清楚!
最佳答案
你试图在你的 n(m+1)
和 elif
块中调用 else
,因为你说 n
是一个整数,这就是问题所在,你应该调用 mult()
函数递归发送 n
和 m+1
或 m-1
作为参数。
另一个问题是您应该在返回之前将 n - mult(n, m+1)
的结果转换为负数。
例子 -
...
return - (n - mult(n, m+1))
else:
return n + mult(n, m-1)
带有示例更改的演示 -
>>> mult(5,-3)
-15
>>> mult(-10,-3)
30
>>> mult(5,3)
15
关于python - Python 中带递归的乘法函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32668423/