小学生蓝桥杯Python闯关 | 离目标值最接近的数

Posted COCOgsta

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小学生蓝桥杯Python闯关 | 离目标值最接近的数相关的知识,希望对你有一定的参考价值。

学习Python从娃娃抓起!记录下蓝桥杯Python学习和备考过程中的题目,记录每一个瞬间。

附上汇总贴:小学生蓝桥杯Python闯关 | 汇总_COCOgsta的博客-CSDN博客


【题目描述】

给出一组正整数数据和一个正整数(目标值),从这组正整数中找出两个数,使这两个数相加的和,小于等于目标值并且离目标值最接近,然后将两个数的和输出。

如:正整数数据为【9,4,3,5】,目标值为10,其中正整数数据中4和3、4和5、3和5的和都小于目标值10,但离目标值最接近的两个数是4和5,其和为9。

【输入描述】

第一行输入一组长度大于3个正整数的数据(正整数<10000),正整数之间以一个英文逗号隔开

第二行输入一个正整数n(1<n<19997),表示目标值

【输出描述】

输出一个整数。如果正整数数据中存在小于等于目标值并且离目标值最接近的两个数,则输出这两个数的和;如果正整数数据中不存在这样的两个数,即正整数数据中任意两个数的和都超过了目标值,则输出-1

【样例输入】

9,4,3,5

10

【样例输出】

9

【代码详解】

ls = [int(i) for i in input().split(",")]

n = int(input())
maxn = -1
ls2 = []

for i in range(0, len(ls)-1):
    for j in range(i+1, len(ls)):
        if ls[i] + ls[j] <= n:
            maxn = ls[i] + ls[j]
            ls2.append(maxn)
print(max(ls2))
复制代码

【运行结果】

8,2,3,4,5,2,4,8,2,4
10
10

以上是关于小学生蓝桥杯Python闯关 | 离目标值最接近的数的主要内容,如果未能解决你的问题,请参考以下文章

小学生蓝桥杯Python闯关 | 2字型输出

小学生蓝桥杯Python闯关 | 密码创建

小学生蓝桥杯Python闯关 | 回文日期

小学生蓝桥杯Python闯关 | 纯质数

小学生蓝桥杯Python闯关 | 移动方格

小学生蓝桥杯Python闯关 | 健康判断