python - 向后打印阶乘?
问题描述
我想做一个循环,给出从 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 - Keras 丢失输出没有改变 - 检查激活和打开主题
- vb.net - 检测何时选择 DataGridViewCell/在 VB.Net 中获得焦点
- kubernetes - 如果我的服务器遍布全球,我应该使用 Kubernetes 吗?
- ajax - 如何使用signalR定期更新asp.net mvc视图?
- css - 使用本地 css 文件时,KaTeX 的渲染结果很奇怪
- android - 如何在 RecyclerView 上为每个更改 LinearLayout bg
- javascript - PrivateRoute 在 reactjs react-router-dom 中不起作用
- azure - 使用 Azure 从 Rest API 引入数据
- r - 使用循环对多个变量进行时间序列预测?
- reactjs - fetch() 帖子的响应不正确