如何解决这个阶乘
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
我已经设法在列表中获取因素,但我无法完成,因为我最后做错了,计数变量没有随产品更新。 我想不使用阶乘函数来求解。
问题: 编写一个程序,计算给定数的阶乘。 结果应以逗号分隔的顺序打印在一行中。 假设向程序提供以下输入: 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