函数/Python循环在查找列表中的数字

2024-04-27 02:59:39 发布

您现在位置:Python中文网/ 问答频道 /正文

无论如何,有没有找到最大的数字,我可以选择从一个数字列表和总和不应超过15。例如:A=[2,5,3,1,10,4,5,9],B=15输出:5。你知道吗

我已经试过了:

A,B = map(int,input().split(" "))
A = list(map(int,input().split(" ")))
A.sort()

Tags: map列表input数字sortlistintsplit
3条回答
# Precondition: a must be in monotonically increasing order
def max_numbers(a, b):
    s = 0
    for i, n in enumerate(a):
        s += n
        if s > b:
            return i

print(max_numbers(a, b))

对列表排序。循环遍历列表,求和到当前循环索引。如果结果大于15,则返回上一个索引。你知道吗

A= [2,5,3,1,10,4,5,9]
A.sort()
for i in range(len(A)):
    if sum(A[:i]) > 15:
        print(i-1)
        break

输出:
5

与@J.D.给出的答案类似,但不是每次都计算sum,我们可以使用变量sum,每次都添加一个元素并检查。你知道吗

>>> A = [2,5,3,1,10,4,5,9]
>>> A.sort()
>>> sum = 0
>>> for i in range(len(A)):
...   sum += A[i]
...   if sum > 15:
...     print(i)
...     break
... 
5

相关问题 更多 >