Python 中带递归的乘法函数

新手上路,请多包涵

我需要编写函数 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)

有人可以帮助我吗,因为我无法弄清楚!

原文由 Benjamin Brooks 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 495
2 个回答

You are trying to call n(m+1) in your elif and else block, since you say n is an integer, this is the problem, you should be calling mult() function recursively sending n and m+1 or m-1 as parameters.

另一个问题是您应该在返回之前将 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

原文由 Anand S Kumar 发布,翻译遵循 CC BY-SA 3.0 许可协议

Python 中的递归乘法:

 def multiplication(num_a, num_b):
   if num_a == 0 or num_b == 0:
     return 0
   return num_a + multiplication(num_a, num_b - 1)

原文由 Vishal7017 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题