看不懂这个递归算法?return x*mi(x, n-1)是在做什么计算

核心就是这个公式:
n>1时,mi(x, n) = x * mi(x, n-1)
n=0时,mi(x, n) = 1, 即n的0次方等于1

比如mi(3,3), 实际计算过程是

  1. mi(3,3) = 3 * mi(3,2)
  2. mi(3,2) = 3 * mi(3,1)
  3. mi(3,1) = 3 * mi(3,0)
  4. mi(3,0) = 1

倒推回去,mi(3, 3)=3 * 3 * 3 * 1=27

为什么mi(3,0)=1呢?我看他这个方法没有定义这个计算

3的0次方等于1.

嗯嗯,这个我明白,我疑惑的是他没有定义mix(x,n)的计算方式,为什么能mi(3,0),mi(3,1)会计算出值来

是不是当n等于0的时候,他return了1就是mi(3,0)的值,从而后面就是按照这个值累计算起来的?

下次记得分类要选择答疑区,标签选open,这样比较容易被看到哈

手写一下比较好理解这个过程

1 个赞

好的,明白啦,感谢感谢

好的好的,下次一定注意