题目一
试题编号: 201903-1
试题名称: 小中大
时间限制: 1.0s
内存限制: 512.0MB
问题描述:
题目分析(个人理解)
- 常规题目,先看输入,第一行输入n表示有多少数字,第二行输入n个数,用空格分开。n=int(input())
l=list(map(int,input().split())) - 再看输出,最大值最小值都可以用函数max和min求出,问题是中位数如何计算,而且要保留一位小数。
- 那么对于中位数要讨论n的奇偶,由于输入时有要求不是降序就是升序排列,所以如果n是奇数,l[int(n/2)]就是中位数,如果n为偶数,就取(l[int(n / 2 - 1)] + l[int(n / 2)]) / 2就是中位数的数值,最后解决保留一位小数的问题,如果除的尽就是.0除不尽就保留一位。
- 上代码!!!
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)]) / 2if pr%1==0.0:print('','%.0f' %pr,end='')else:print('','%.1f' %pr,end='')
print('',min(l))
题目二
试题编号: 201903-2
试题名称: 二十四点
时间限制: 1.0s
内存限制: 512.0MB
题目分析(个人理解)
- 题目巴拉巴拉说了半天就是确定一下运算完了是不是24,是就YES不是就No,关键的是将特殊符号换成运算符,我使用replace方法就可实现,非常简单。
- 然后判断之后输出即可。
- 上代码!!!
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")
- 简化版:
for i in range(int(input())): print('Yes' if eval(input().replace('x', '*').replace('/', '//')) == 24 else 'No')
总结
今天终于能按时干饭了,主要是今天的两题过于简单。
我的炸酱面Pro Max版: