打印出循环时如何执行0?我一直在尝试打印 python 中的阶乘。我需要在输出中打印 0
How to execute 0 when printing out the loop? I've been trying to print out the factorial in python. I need 0 to be printed in the output
def fact(n):
f=1
for num in range(1,n+1):
if num==0:
return 1
else:
f=f*num
print(num,f)
n=int(input())
fact(n)
#here is my code, but the output should be
0 0
1 1
2 2
3 6
4 24
5 120
6 720
instead of
1 1
2 2
3 6
4 24
5 120
6 720
你能告诉我哪里出了问题以及我应该在代码中添加什么吗?
0, 0 不能真正成为阶乘的一部分,因为随后的所有数字都必须乘以 0,使它们全部为零。我想你可以先打印出来。
def fact(n):
f=1
print(0, 0)
for num in range(1,n+1):
f=f*num
print(num,f)
n=int(input())
fact(n)
想当然地认为0! = 1 和 1! = 1,那么你已经有了序列的前两个数字。所以你可以乘以 num+1
以避免乘以零。然后在进行下一次乘法之前获取输出。
def fact(n):
f=1
for num in range(n+1):
print(num,f)
f=f*(num+1)
fact(5)
0 1
1 1
2 2
3 6
4 24
5 120
如果需要,您还可以创建查找 table:
def fact(n):
FACT=[]
f=1
for num in range(n+1):
FACT += [f]
f=f*(num+1)
return FACT
F = fact(n)
F[0]
>>> 1
F[4]
>>> 24
range
应该从 0
开始,因此 range(0, n+1)
或只是 range(n+1)
因为在您的代码中永远不会满足条件
- 当满足条件时你应该有一个
print
: print(0, 0)
def fact(n):
f=1
for num in range(0,n+1):
if num==0:
print(num, num) # num is just 0
else:
f=f*num
print(num,f)
备注:
return
真的需要吗?它总是 1
独立于 n
- 0! = 1 根据定义。也许
print(0, 1)
?
def fact(n):
f=1
for num in range(1,n+1):
if num==0:
return 1
else:
f=f*num
print(num,f)
n=int(input())
fact(n)
#here is my code, but the output should be
0 0
1 1
2 2
3 6
4 24
5 120
6 720
instead of
1 1
2 2
3 6
4 24
5 120
6 720
你能告诉我哪里出了问题以及我应该在代码中添加什么吗?
0, 0 不能真正成为阶乘的一部分,因为随后的所有数字都必须乘以 0,使它们全部为零。我想你可以先打印出来。
def fact(n):
f=1
print(0, 0)
for num in range(1,n+1):
f=f*num
print(num,f)
n=int(input())
fact(n)
想当然地认为0! = 1 和 1! = 1,那么你已经有了序列的前两个数字。所以你可以乘以 num+1
以避免乘以零。然后在进行下一次乘法之前获取输出。
def fact(n):
f=1
for num in range(n+1):
print(num,f)
f=f*(num+1)
fact(5)
0 1
1 1
2 2
3 6
4 24
5 120
如果需要,您还可以创建查找 table:
def fact(n):
FACT=[]
f=1
for num in range(n+1):
FACT += [f]
f=f*(num+1)
return FACT
F = fact(n)
F[0]
>>> 1
F[4]
>>> 24
range
应该从0
开始,因此range(0, n+1)
或只是range(n+1)
因为在您的代码中永远不会满足条件- 当满足条件时你应该有一个
print
:print(0, 0)
def fact(n):
f=1
for num in range(0,n+1):
if num==0:
print(num, num) # num is just 0
else:
f=f*num
print(num,f)
备注:
return
真的需要吗?它总是1
独立于n
- 0! = 1 根据定义。也许
print(0, 1)
?