Python 3.x 有人能用python帮助解决这个问题吗?

Python 3.x 有人能用python帮助解决这个问题吗?,python-3.x,Python 3.x,设计一个递归函数,该函数接受参数x和y中的两个参数。函数应该返回x乘以y的值。假设x和y总是正的非零整数。记住,乘法可以按如下重复加法进行:8x7=8+8+8+8+8+8+8+8 def my(x,y): if x==0: return 0 else: return x*mul(x,x-1) assertEqual(my(8,7),56) assertEqual(my(8,5),40) assertEqual(my(8,2),16) 下面是一

设计一个递归函数,该函数接受参数x和y中的两个参数。函数应该返回x乘以y的值。假设x和y总是正的非零整数。记住,乘法可以按如下重复加法进行:8x7=8+8+8+8+8+8+8+8

def my(x,y):
    if x==0:
        return 0

    else:

        return x*mul(x,x-1)
assertEqual(my(8,7),56)
assertEqual(my(8,5),40)
assertEqual(my(8,2),16)

下面是一些可以实现此目的的伪代码:

define mult(x,y):
    if x is zero:
        return zero
    return y plus mult(x-1, y)
现在,因为我一直认为Python是一种理想的伪代码语言,所以它应该很容易转换。递归的思想是用更简单的操作定义一个操作,并提供一个终止的操作

为了理解这一点,想象一下当x为3,y为7时会发生什么

第一次在mult3,7中,x是非零的,因此结果是y=7加上mult2,7

对于mult2,7:结果是y=7加上mult1,7

对于mult1,7:结果是y=7加上mult0,7

对于mult0,7:由于x为零,所以结果为零


这会给你7+7+7+0或21,正如预期的那样。

我认为你应该将其标记为家庭作业。