填充空格以使阶乘函数返回n的阶乘。然后,打印带有相应编号的前10个阶乘(从0到9)。请记住,数字的阶乘定义为一个整数与其之前的所有整数的乘积。
def factorial(n):
result = 1
for x in range(0,10):
result = result * x
return x
for n in range(0,10):
print(n, n*factorial(n+1))
输出:
0 0
1 9
2 18
3 27
4 36
5 45
6 54
7 63
8 72
9 81
让我们从factorial
功能开始:
def factorial(n):
result = 1
for x in range(0, 10):
result = result * x
return x
您总是为每个n
做10次乘法。但是,例如,对于3!
,您只需要3个乘法,因为3! = 1 * 2 * 3 = 6
。您会看到,对于每个n
,您都需要n
乘法。您可以承认,我们总是从1开始而不是从0开始乘法。这就是为什么您的for
循环如下所示:
for x in range(1, n + 1):
result = result * x
同样在您的代码中,您返回x
。在您的代码中它将始终等于9。因为它将是range(0, 10)
的最后一个值。
这就是为什么您得到这些答案的原因:
0 0 # 0 * 9
1 9 # 1 * 9
2 18 # 2 * 18
此外,您不需要将函数结果乘以任何值。仅调用factorial(num)
将返回正确的结果。