2024-06-01 03:35:28 发布
网友
有人能帮我一步一步地理解这个函数吗?我已经试了好几个小时了,运气不好。多谢各位
def mult(a,b): # Take care of the base case!! if b == 1: return a return mult(a,b-1) + a
这是一个递归函数,执行重复加法(即乘法)。添加打印语句:
>>> def mult(a, b): ... print(a, b) ... if b == 1: ... return a ... return mult(a, b - 1) + a ... >>> mult(3, 5) 3 5 3 4 3 3 3 2 3 1 15
基本情况是b == 1,请注意,递归调用将b的值减少1,并将输出添加到a。因为a永远不会改变,所以您所做的就是将a添加到自身b次(同样,这与乘法是一样的)
b == 1
b
a
这是一张非常平庸的图表。起初很难看到,但最终你会明白的
mult(2, 3) -> mult(2, 2) + 2 > 6 \ \ \ 4 \ / \ mult(2, 1) + 2 \ \ \ \ base case -> 2
您正在使用递归将a乘以b。递归是一个相当高级的概念,因此您可能想了解它。递归的主要思想是函数反复调用自身来解决问题。为了避免无限循环,总是有一个基本情况
在您的情况下,b从它的原始值开始,并且每次函数调用自己时递减1。每次,都会向自身添加一个。当b最终达到1时,递归停止并返回一个值。到那时,a将被添加到b自身中;i、 e.a乘以b
这是一个递归函数,执行重复加法(即乘法)。添加打印语句:
基本情况是
b == 1
,请注意,递归调用将b
的值减少1,并将输出添加到a
。因为a
永远不会改变,所以您所做的就是将a
添加到自身b
次(同样,这与乘法是一样的)这是一张非常平庸的图表。起初很难看到,但最终你会明白的
您正在使用递归将a乘以b。递归是一个相当高级的概念,因此您可能想了解它。递归的主要思想是函数反复调用自身来解决问题。为了避免无限循环,总是有一个基本情况
在您的情况下,b从它的原始值开始,并且每次函数调用自己时递减1。每次,都会向自身添加一个。当b最终达到1时,递归停止并返回一个值。到那时,a将被添加到b自身中;i、 e.a乘以b
相关问题 更多 >
编程相关推荐