python - 我不知道为什么我把它作为我的输出?
问题描述
该程序应该从位置 0 开始遍历数组中的数字,并将每个数字与它之前的数字相乘。例如,因为 3 是第一个元素,左边没有可以乘它的元素,所以它保持不变。对于第二个位置,您可以将 7 乘以它左侧的值 3,从而将 21 放置在 7 所在的数组中。用我的数学我应该得到 [3, 21, 105, 630, 5670] 作为输出,但我得到了这个: [3, 21, 315, 119070, 21266497350]
front = [3,7,5,6,9]
temp = 1
for i in range(len(front)):
print("before mult " + str(temp))
front[i] *= temp
print(front)
temp *= front[i]
print("after mult " + str(temp))
完整的输出是:
before mult 1
[3, 7, 5, 6, 9]
after mult 3
before mult 3
[3, 21, 5, 6, 9]
after mult 63
before mult 63
[3, 21, 315, 6, 9]
after mult 19845
before mult 19845
[3, 21, 315, 119070, 9]
after mult 2362944150
before mult 2362944150
[3, 21, 315, 119070, 21266497350]
after mult 50251545504173002500
解决方案
你在做不必要的乘法
front = [3,7,5,6,9]
temp = 1
for i, v in enumerate(front):
temp *= front[i]
front[i] = temp
print( front )
推荐阅读
- android - GraphView 未在点击时显示第一个数据点
- php - 如何在laravel中上传大于8M的文件
- flutter - Flutter:将空值传递给不可为空的参数值这将在启用运行时空安全时失败
- php - WordPress一次通过2个自定义字段订购帖子
- r - 抓取选定用户的最后一条推文
- java - 在 Spring Boot 中无法在 @bean 中使用 @value
- python - 从 Matlab 调用 Python - 如何调试 Python 代码?
- c# - 使用 Angular 登录/注册页面而不是 MVC 视图的 AddApiAuthorization
- presto - 在 presto 中,如何在同一字段上使用两个条件两次 max_by?
- react-hooks - 将图像从 React 上传到 ASP.NET Core Web API