我需要编写函数 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)
谁能帮帮我,因为我想不通!
最佳答案
你正试图在你的 elif
和 else
block 中调用 n(m+1)
,因为你说 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)
Demo with example changes -
>>> mult(5,-3)
-15
>>> mult(-10,-3)
30
>>> mult(5,3)
15
关于python - Python 中带递归的乘法函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32668423/