如何解决这个因子

时间:2015-07-08 18:47:41

标签: python factorial

我已经设法在列表中获取因素但我无法完成因为我最后做错了,count变量没有用产品更新。 我想在不使用阶乘函数的情况下解决它。

问题: 编写一个可以计算给定数字的阶乘的程序。 结果应以逗号分隔的顺序打印在一行上。 假设为程序提供了以下输入: 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 

3 个答案:

答案 0 :(得分:1)

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

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

print result

答案 1 :(得分:0)

查找数字的阶乘是很简单的。我不是python专家,它可能写得更简单,但是,

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

我认为@erip可能在评论部分正确。

答案 2 :(得分:0)

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

factorial = 1

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