gpt4 book ai didi

python - 向后打印阶乘?

转载 作者:太空宇宙 更新时间:2023-11-03 12:26:17 25 4
gpt4 key购买 nike

我想做一个循环,给出从 10 到 1 的阶乘。

所以我有这段代码:

factorial = 1
for i in range(1,11):
factorial = factorial * i
print(i,'!=', factorial)

但这显示的结果是这样的:

1 != 1
2 != 2
3 != 6

但是我希望他们这样:

10 != 3628800
9 != 362880
8 != 40320

我已经尝试了几种不同的方法,但没有任何效果,请问有什么想法吗?

最佳答案

results = []
factorial = 1
for i in range(1,11):
factorial = factorial * i
results.append('{:2,}! = {:,}'.format(i, factorial))

print('\n'.join(reversed(results)))

输出:

10! = 3,628,800
9! = 362,880
8! = 40,320
7! = 5,040
6! = 720
5! = 120
4! = 24
3! = 6
2! = 2
1! = 1

要减少所需的内存量,您可以这样做:

results = []
factorial = 1
for i in range(1, 11):
factorial *= i
results.append(factorial)

for i, value in enumerate(reversed(results)):
print('{:2,}! = {:,}'.format(len(results)-i, value))

如果你喜欢列表理解,也可以用这种有点古怪的方式来完成:

res = []
res = [res[-1] for x in range(1, 11) if not res.append(x*res[-1] if res else 1)]

for i, value in enumerate(reversed(res)):
print('{:2,}! = {:,}'.format(len(res)-i, value))

关于python - 向后打印阶乘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53131156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com