如何解决这个阶乘

how to solve this factorial

我已经设法在列表中获取因素,但我无法完成,因为我最后做错了,计数变量没有随产品更新。 我想不使用阶乘函数来求解。

问题: 编写一个程序,计算给定数的阶乘。 结果应以逗号分隔的顺序打印在一行中。 假设向程序提供以下输入: 8个 那么,输出应该是: 40320

提示: 如果向问题提供输入数据,则应假定为控制台输入。

user = int(input("Input a number: "))
factors = []


while user > 0:
    n = user * (user - 1)
    if user == 1:
        factors.append(1)
        break
    else:
        factors.append(user)
        user -= 1

count = 0   # this should be updating but it's not 
for f in range(factors[0]):  # I'm not sure if this is the correct range
    counting = factors[f] * factors[f + 1] # I'm not sure about this either
    count = count + counting 
    f = f + 1 

只需将程序的最后一部分更改为:

result = 1
for f in factors:
    result *= f

print result

求一个数的阶乘很简单。我不是 python 专家,它可能会写得更简单但是,

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

我觉得评论区@erip说的可能是对的

num = int(input("Input a number: "))

factorial = 1

for i in range(2,num+1): # range isn't inclusive
   factorial*=i