我需要编写函数 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() 函数递归发送 nm+1m-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/

10-10 09:22