gpt4 book ai didi

python - 如何在Python中的列表中找到每个整数与模的乘积

转载 作者:行者123 更新时间:2023-12-01 03:36:37 25 4
gpt4 key购买 nike

我正在尝试查找列表中每个元素的乘积。假设包含 1000 个元素,每个元素的值都高于 200,并且每次将一个元素与另一个元素相乘时都取 mod(%1000000007)。下面给出的代码对于较小的值可以正常工作,但对于大输入,我收到运行时错误 - NZEC

    mul=1
t = int(input())
s=input()
for i in range(0,2*t,2):
k=int(s[i])
mul=(mul*k)%1000000007
print(mul)

输入的格式为:

5

1 2 3 4 5

最佳答案

问题在于处理数字的方式,而不是您使用的操作。

我的意思是当你输入:

89 100 200 678 123  #EDIT- CHANGED FOR NO COMMAS

创建的变量是一个像这样的字符串:

s = "89 100 200 678 123"

在Python中,当你尝试迭代这样的字符串时:

s[i]

字符串被作为列表读取,如下所示:

s = ['8','9',' ','1','0','0',' ','2','0','0',' ','6','7','8',' ','1','2','3']

所以这部分:

for i in range(0,2*t,2): #t=5
k=int(s[i])

获取以下元素:

k='8'
k=' '
k='0'
k=' '
k='0'

这可能就是您收到错误的原因。

我的解决方案是通过使用以下方式获取输入作为列表:

numbers = input().split(" ")

然后用正常的你会得到:

for i in range(t):
k=int(numbers[i])
mul=(mul*k)%1000000007
print(mul)

编辑:

我添加了适合我的代码,请告诉我它是否适合您:

mul=1
t = int(input()) #5
numbers = input().split(' ') #11 2 15 3 99
for i in range(t):
k=int(numbers[i])
mul=(mul*k)%1000000007
print(mul) #98010

关于python - 如何在Python中的列表中找到每个整数与模的乘积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40278924/

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