python运动计划 2024年信息素养大赛复赛/决赛真题 小学组/初中组 python编程挑战赛 真题详细解析

python运动计划 2024年信息素养大赛复赛/决赛真题 小学组/初中组 python编程挑战赛 真题详细解析_第1张图片

python运动计划

2024全国青少年信息素养大赛Python编程挑战赛复赛真题解析

博主推荐

  • 所有考级比赛学习相关资料合集【推荐收藏】

1、Python比赛

  • 信息素养大赛Python编程挑战赛

  • 蓝桥杯python选拔赛真题详解

  • 蓝桥杯python省赛真题详解

  • 蓝桥杯python国赛真题详解

2、Python考级

  • python等级一级真题解析【电子学会】

  • python等级二级真题解析【电子学会】

  • python等级三级真题解析【电子学会】

  • python等级四级真题解析【电子学会】

一、题目要求

(注:input()输入函数的括号中不允许添加任何信息)

1、编程实现

小胖为了提高自己的体能制定了运动计划。在第K天时,他必须要完成K个运动项目,否则他就会偷懒,小胖现在拥有n个运动计划,每个计划中有一定数量的项目。但是他十分挑别,每个计划他只会使用一次,每天也只能使用一个计划中的项目,之后那套计划就会被弃之不用。对于每个计划,他不必完成其中的所有项目。那么问题来了,小胖最多会坚持运动几天才偷懒呢?

2、输入输出

输入描述:第一行:1个整数n,表示有多少个运动计划。例如,如果n=4,这意味着小胖有4个不同的运动计划。第二行:n个整数a1、a2、...an,分别表示每个运动计划有多少个项目。这些整数表示每个运动计划的项目数量。例如,如果输入是2431,这意味着第一个计划有2个项目,第二个计划有4个项目,第三个计划有3个项目,第四个计划有1个项目。

输出描述:只有一行,一个整数,即小胖在偷懒前最多坚持运动的天数。

输入样例:

4
3 1 4 1

输出样例:

3

二、算法分析

  1. 目标:输入n,以及n个计划数要计算出最多坚持运动的天数。
  2. 策略:可以将n个计划数存放在列表里面,并按从小到大排序,目的是确保优先使用较小的计划资源满足较小的每日需求,保留较大的计划应对后续更高要求的天数。
  3. 接着依次遍历每天的计划数是否满足当日的项目数,如果满足项目数加1,同时天数也加1,不满足就跳过继续下一个计划判断
  4. 最后输出满足的天数即可

本文作者:小兔子编程 作者首页:小兔子编程-CSDN博客

三、程序编写

n = int(input())
plans = list(map(int, input().split()))
plans.sort()
day = 0
k = 1
for plan in plans:
    if plan >= k:
        day += 1
        k += 1
print(day)

四、程序说明

  1. 利用input输入函数从键盘获取输入数据
  2. 利用int函数将n转换成整数类型
  3. 利用split函数以及map函数将输入的多个计划数转换成整数对象,并结合list函数转换成列表
  4. 接着对列表进行排序,同时天数从0开始,目标数从1开始
  5. 然后利用for循环遍历列表里面的计划数
  6. 如果当天计划数大于等于目标数,天数加1,目标数加1
  7. 最后通过print函数输出天数即可

五、运行结果

4
3 1 4 1

3

六、考点分析

难度级别:中等,这题相对而言在于计划数和目标数的理解,具体主要考查如下:

  1. 学会分析题目,找到解题思路
  2. 学会贪心算法知识的应用
  3. input函数:Python 中 input() 函数接受一个标准输入数据,返回为 string 类型。
  4. int函数:强制将传入对象转换成整数类型
  5. split函数:按照指定的分隔符进行分割
  6. map函数:将指定的对象按照指定的函数进行迭代,在这里是将时分秒字符串类型数据按int整数类型数字返回输出(相当于多个变量强制类型转化)
  7. list函数:强制将参数转化成列表对象
  8. 学会列表的相关操作:列表声明、取数、排序、遍历等等
  9. 学会for循环的使用:for循环可以遍历任何有序的项及列表元素等等。
  10. 学会if...条件判断语句的使用:满足条件才执行相应的程序
  11. print函数:用于打印输出,最常见的一个函数。
  12. 充分掌握for循环和列表相关操作函数的使用

PS:方式方法有多种,小朋友们只要能够达到题目要求即可!

你可能感兴趣的:(Python信息素养大赛真题,Python信息素养复赛真题,Python编程挑战赛复赛真题,信息素养Python复赛真题,Python信息素养决赛真题,Python编程挑战赛真题,Python运动计划)