我已经设法在列表中获取因素但我无法完成因为我最后做错了,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
答案 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