python - Python 中带递归的乘法函数

标签 python function recursion multiplication negation

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

谁能帮帮我,因为我想不通!

最佳答案

你正试图在你的 elifelse block 中调用 n(m+1),因为你说 n 是一个整数,这就是问题所在,您应该调用 mult() 函数递归地发送 nm+1m-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/

相关文章:

java - 使用 List<> 参数重载 Java 函数

c++ - 函数指针只在main内部起作用?

python - 使多维列表平坦,其中子列表等于其平均值

c++ - 如何在递归函数中计算返回结果?

python - 无需 Celery 或 Redis 即可进行进度跟踪的后台任务

python - Google API 存储返回字符串,而不是凭据对象

python - Python 中的切片(不重复,切片翻译)

python - Django保存文件不使用表单,仅使用ajax

php - MySQL 存储函数和 php

python - 使用递归的二叉树中的最低公共(public)祖先