当前位置: 首页 > 知识库问答 >
问题:

python中的阶乘代码有什么问题

郦楷
2023-03-14

我有下面的代码用于在Python中计算一个数的阶乘。但我不明白为什么我得到的答案是1。有人能纠正我的代码吗。我想在不使用递归的情况下计算阶乘。

def factorial (n):
        result =1 
        num = n
        while n<1:
            result = result * num
            num = num -1
        return result

    factorial(5)
    1

共有1个答案

朱毅
2023-03-14
while n < 1:

相反应该是

while num > 1:
 类似资料:
  • 有人能帮助我的java阶乘赋值吗?我认为我做得对,但我不确定。我需要让用户输入一个数字,然后计算输入数字的阶乘。就像人输入10一样,用户会将此视为输出:0! = 1, 1! = 1, 2! = 2, 3! = 6, 4! = 24, 5! = 120, 6! = 720, 7! = 5040, 8! = 40320, 9! = 362880

  • 问题内容: 寻找JavaScript 中 阶乘 函数的真正快速实现。有什么建议吗? 问题答案: 您可以[搜索(1 …100)!在WolframAlpha上预先计算阶乘序列。 前100个数字是: 如果仍要自己计算值,则可以使用备忘录: 编辑:21.08.2014 解决方案2 我认为添加一个 懒惰的* 迭代 阶乘函数 的工作示例将很有用,该 函数 使用 大数 来获得带有 备忘录的 准确 结果,并将 缓

  • Python3 实例 整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,0的阶乘为1。即:n!=1×2×3×...×n。 #!/usr/bin/python3 # Filename : test.py # author by : www.runoob.com # 通过用户输入数字计算阶乘 # 获取用户输入的数字 num = int(input("请输入一个数字: ")) fa

  • 问题内容: 我正在尝试计算给定日期的第n个工作日。例如,我应该能够计算给定日期的月份中的第三个星期三。 我已经编写了2个版本的函数,该代码可以做到这一点: 控制台输出 这两个函数中的逻辑显然是错误的,但是我似乎无法找到该错误-任何人都可以发现该代码出了什么问题-以及如何解决该问题以返回正确的值? 问题答案: 您的问题在这里: 首先,您用错误的方式减去东西:您需要从所需的日期减去实际的日期,而不是相

  • 问题内容: 为什么在下面的程序中不执行func3?在func1之后,不需要对func2进行评估,但是对于func3,不是吗? 问题答案: 您正在使用短路或。如果第一个参数为true,则整个表达式为true。 如果添加编译器使用的隐式括号可能会有所帮助 编辑 :正如Chris Jester-Young所说,这实际上是因为逻辑运算符必须从左到右的关联性: func1返回之后,它变为: 评估短路或后,它

  • 我试图计算阶乘中尾随零的数量。 我认为尾随零的数量不正确。 使用计数(30)时,30中有7个尾随的0。然而,它正在返回6。