在Python中实现递归函数以计算阶乘的问题

tf7tbtn2  于 2023-08-02  发布在  Python
关注(0)|答案(2)|浏览(99)

我试图在Python中实现一个递归函数来计算阶乘,但我在代码中遇到了一些问题。当我输入一个正整数时,函数没有返回正确的阶乘值。我已经检查了逻辑和语法,但我似乎不能确定问题。
下面是我实现的递归函数:

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)

字符串

n8ghc7c1

n8ghc7c11#

你的解决方案似乎很好,尽管你的if语句应该是:

def factorial(n):
    if n == 1:
        return 1
    else:
        # recursive call to the function
        return (n * factorial(n-1))

字符串
但其他解决方案是:
1-使用for循环:

n = 17        # n!
f = 1         # result
 
for i in range(1, n+1):
    f = f * i
 
print(f"Factorial result of {n}! is : {f}")


2-使用数学:

import math

n = 17        # n!

 
print(f"Factorial result of {n}! is : ", math.factorial(n))

1aaf6o9v

1aaf6o9v2#

也许,这段代码可以帮助你……

def Factorial(n):
  f = 1
  for i in range(n,0,-1):
    f = f*i
  return f
#Call the factorial function where necessary

字符串
希望对你有帮助。我刚才也扩展了减法部分。

相关问题