CCF CSP认证 历年题目自练 Day20

题目一

试题编号: 201903-1

试题名称: 小中大

时间限制: 1.0s

内存限制: 512.0MB

问题描述:

题目分析(个人理解)

  1. 常规题目,先看输入,第一行输入n表示有多少数字,第二行输入n个数,用空格分开。n=int(input())
    l=list(map(int,input().split()))
  2. 再看输出,最大值最小值都可以用函数max和min求出,问题是中位数如何计算,而且要保留一位小数。
  3. 那么对于中位数要讨论n的奇偶,由于输入时有要求不是降序就是升序排列,所以如果n是奇数,l[int(n/2)]就是中位数,如果n为偶数,就取(l[int(n / 2 - 1)] + l[int(n / 2)]) / 2就是中位数的数值,最后解决保留一位小数的问题,如果除的尽就是.0除不尽就保留一位。
  4. 上代码!!!
python 复制代码
n=int(input())
l=list(map(int,input().split()))
print(max(l),end='')
if n%2==1:
    print('',l[int(n/2)],end='')
else:
    pr = (l[int(n / 2 - 1)] + l[int(n / 2)]) / 2
    if pr%1==0.0:
        print('','%.0f' %pr,end='')
    else:
        print('','%.1f' %pr,end='')
print('',min(l))

题目二

试题编号: 201903-2

试题名称: 二十四点

时间限制: 1.0s

内存限制: 512.0MB

题目分析(个人理解)

  1. 题目巴拉巴拉说了半天就是确定一下运算完了是不是24,是就YES不是就No,关键的是将特殊符号换成运算符,我使用replace方法就可实现,非常简单。
  2. 然后判断之后输出即可。
  3. 上代码!!!
python 复制代码
n = int(input())
for i in range(n):
    s=input()
    s = s.replace("/", "//")  # //换成整除
    s = s.replace("x", "*")  # x换成乘法
    sum = eval(s)  # 执行表达式得出运算结果
    if (sum == 24):
        print("Yes")
    else:
        print("No")
  1. 简化版:
python 复制代码
for i in range(int(input())): 
	print('Yes' if eval(input().replace('x', '*').replace('/', '//')) == 24 else 'No')

总结

今天终于能按时干饭了,主要是今天的两题过于简单。

我的炸酱面Pro Max版:

相关推荐
西西弟4 分钟前
最短路径之Floyd算法(数据结构)
数据结构·算法
IP老炮不瞎唠6 分钟前
Scrapy 高效采集:优化方案与指南
网络·爬虫·python·scrapy·安全
沪漂阿龙8 分钟前
深入浅出 Pandas apply():从入门到向量化思维
人工智能·python·pandas
我材不敲代码9 分钟前
OpenCV 实战——Python 实现图片人脸检测 + 视频人脸微笑检测
人工智能·python·opencv
小O的算法实验室10 分钟前
2026年SEVC,直觉模糊不确定环境下求解绿色多物品固定费用五维运输问题的多目标进化算法,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
海海不瞌睡(捏捏王子)21 分钟前
Unity A*寻路算法
算法·unity
jaysee-sjc24 分钟前
【项目三】用GUI编程实现局域网群聊软件
java·开发语言·算法·安全·intellij-idea
七夜zippoe29 分钟前
模型部署优化:ONNX与TensorRT实战——从训练到推理的完整优化链路
人工智能·python·tensorflow·tensorrt·onnx
maxmaxma32 分钟前
ROS2 机器人 少年创客营:Day 7
人工智能·python·机器人·ros2
牢七39 分钟前
jfinal_cms-v5.1.0 白盒 nday
开发语言·python