自定义非递归阶乘函数在执行后拒绝进一步输入
Custom non-recursive factorial function refuses further input after execution
我正在尝试在 Python 中编写一个简单的 factorial
函数,但是在执行时,这个函数什么都不做,并且由于某些奇怪的原因而导致控制台崩溃。
请记住,我大约一周前才开始使用 Python 进行编码,并且习惯使用其他较低级别的 OOP 语言,所以请原谅任何明显的错误。
这是我当前的函数:
# initialise factorial function:
def factorial(n):
i = 1 # initialise incrementing variable
while i < n:
n = n * i
i = i + 1
return n # return result
该函数什么也不打印,并拒绝任何进一步的输入。
试试这个函数:(适用于 n >= 0)
def factorial(n):
r = 1
i = 2
while i <= n:
# Use shorter version
r *= i
i += 1
return r
或者(适用于 n > 0)
def factorial(n):
i = n
while i > 1:
i -= 1
n *= i
return n
n=int(input("Enter a number "))
result=1
for i in range(1,n+1):
if i<n:
result=result*(i+1)
print("Factorial of {} is {}".format(n,result))
我正在尝试在 Python 中编写一个简单的 factorial
函数,但是在执行时,这个函数什么都不做,并且由于某些奇怪的原因而导致控制台崩溃。
请记住,我大约一周前才开始使用 Python 进行编码,并且习惯使用其他较低级别的 OOP 语言,所以请原谅任何明显的错误。
这是我当前的函数:
# initialise factorial function:
def factorial(n):
i = 1 # initialise incrementing variable
while i < n:
n = n * i
i = i + 1
return n # return result
该函数什么也不打印,并拒绝任何进一步的输入。
试试这个函数:(适用于 n >= 0)
def factorial(n):
r = 1
i = 2
while i <= n:
# Use shorter version
r *= i
i += 1
return r
或者(适用于 n > 0)
def factorial(n):
i = n
while i > 1:
i -= 1
n *= i
return n
n=int(input("Enter a number "))
result=1
for i in range(1,n+1):
if i<n:
result=result*(i+1)
print("Factorial of {} is {}".format(n,result))