在Python中使用递归的乘法函数

Ben*_*oks 1 python recursion function 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)
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我,因为我无法理解!

Ana*_*mar 5

你试图调用n(m+1)你的elifelse块,因为你说n是一个整数,这是问题,你应该调用mult()函数递归发送n和/ m+1m-1作为参数.

另一个问题是你应该n - mult(n, m+1)在返回之前将结果转换为负数.

示例 -

...
    return - (n - mult(n, m+1))
else:
    return n + mult(n, m-1)
Run Code Online (Sandbox Code Playgroud)

示例更改演示 -

>>> mult(5,-3)
-15
>>> mult(-10,-3)
30
>>> mult(5,3)
15
Run Code Online (Sandbox Code Playgroud)