首页 > 解决方案 > 使用原始运算符找到 N 到 K 深度的阶乘

问题描述

难以使用以下方法提出解决方案:

  1. 迭代/控制流和
  2. 积累。

不仅仅是一个解决方案,更希望有一个带有提示和解释的答案。

def falling(n, k):
    """Compute the falling factorial of N to depth K.

    >>> falling(6, 3)  # 6 * 5 * 4
    120
    >>> falling(4, 3)  # 4 * 3 * 2
    24
    >>> falling(4, 1)  # 4
    4
    >>> falling(4, 0)
    1
    """
    fact = n
    i = 0    
    while i <= k:
        fact = fact * fact - 1
        i += 1
        n -= 1
    return fact

标签: pythonwhile-loopfactorial

解决方案


因为您不想要解决方案,而是想要代码失败的原因,所以我会给您一些指示

逻辑错在这里是为什么

  • 事实上每次迭代都会更新,
  • 仔细检查 while 条件 i < k 或 i <= k?

推荐阅读