我试图在Python中实现一个递归函数来计算阶乘,但我在代码中遇到了一些问题。当我输入一个正整数时,函数没有返回正确的阶乘值。我已经检查了逻辑和语法,但我似乎不能确定问题。下面是我实现的递归函数:
def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1)
字符串
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))
型
1aaf6o9v2#
也许,这段代码可以帮助你……
def Factorial(n): f = 1 for i in range(n,0,-1): f = f*i return f #Call the factorial function where necessary
字符串希望对你有帮助。我刚才也扩展了减法部分。
2条答案
按热度按时间n8ghc7c11#
你的解决方案似乎很好,尽管你的if语句应该是:
字符串
但其他解决方案是:
1-使用for循环:
型
2-使用数学:
型
1aaf6o9v2#
也许,这段代码可以帮助你……
字符串
希望对你有帮助。我刚才也扩展了减法部分。