第1关:上课 or 休息
任务描述
本关任务:按照武汉理工大学课表时间安排,编写一个根据输入的时间输出课堂的节数or休息。
相关知识
编程要求
本题设定上课时间为08:00至12:20(早课),14:00至18:20(中课),19:00至21:25(晚课)
,其余时间为休息时间。 按上图所示,根据输入的时间hh:mm
,输出早课
,中课
,晚课
或者休息
。 本题中不允许使用eval()
转换数据类型,每个上课时间段的最后一分钟是上课时间。 测试保证输入的时间格式完整并合法,范围在00:00至23:59
a = '08:00'
b = '12:20'
c = '14:00'
d = '18:20'
e = '19:00'
f = '21:25'
t = input()
if a<=t<=b:
print("早课")
elif c<t<=d:
print("中课")
elif e<t<=f:
print("晚课")
else:
print("休息")
第2关:百分制成绩转换五分
任务描述
编写一个学生成绩转换程序,用户输入百分制的学生成绩,成绩大于等于90且小于等于100的输出为A
,成绩大于或等于80且小于90的输出为B
,成绩大于或等于70且小于80的输出为C
,成绩大于或等于60且小于70的输出为D
,成绩小于60且大于等于0的输出为E
,如果输出的成绩大于100或小于0,输出data error!
。
输入格式
输入一个数字,代表百分制成绩。
输出格式
A、B、C、D、E中的一个字母,表示五分制的成绩等级;或输出data error!
a = int(input())
if 0<=a<=100:
b='EEEEEEDCBAA'
print(b[a//10]) #向下取整
else:
print("data error!")
第3关:a除以b
任务描述
输出实数a
除以b
的结果,计算结果四舍五入,保留2位
小数。
输入格式
输入包括两行 每行一个实数, b不能等于0
输出格式
当用户输入b为0时输出除零错误
其他情况下输出一个保留2位
小数的实数
a = eval(input())
b = eval(input())
if b==0:
print("除零错误")
else:
c=a/b
print(round(c,2))
第4关:鸡兔同笼
任务描述
本关任务:编写一个解决鸡兔同笼问题的小程序。
鸡兔同笼
大约在 1500
年前,《孙子算经》中记载一个有趣的问题:今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?
大概的意思是:有若干只鸡兔同在一个笼子里,从上面数,有 35
个头,从下面数,有 94
只脚,问笼中各有多少只鸡和兔?
请编一个程序,用户在同一行内输入两个整数,代表头和脚的数量,编程计算笼中各有多少只鸡和兔(假设鸡和兔都正常,无残疾),如无解则输出`“Data Error!
#参考下面的示例代码,从同一行读入两个数
a, b = input().split() # 将输入的以空格分隔的两个数命名为a和b
a, b = map(int,input().split(','))
# 将输入的以逗号分隔的两个值,转换为整数后命名为a和b
a, b = map(int,input().split())
r=(b/2-a)
c=a-r
if a < 0 or b < 0:
print("Data Error!")
elif c-int(c)!=0 or c < 0 or r < 0:
print("Data Error!")
else:
print(f"有{int(c)}只鸡,{int(r)}只兔")
第5关:物不知数
问题描述
“物不知数”出自《孙子算经》。题目为:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”。
意思是说有一些物品,不知道有多少个,如果一次3
个 3
个地数,还多出 2
个;一次5
个 5
个地数则多出 3
个;一次 7
个 7
个地数会多出 2
个。 现假设物品总数不超过 n
(n<=1000),请编程计算满足条件的物品个数并输出。
编程要求
根据提示,在右侧编辑区补充代码,计算满足条件的物品个数并输出。
测试说明
平台会对你编写的代码进行测试:
输入格式: 输入为一个正整数 n
,题目保证 0 < n <= 1000
。
输出格式: 输出不超过 n
且满足条件的物品个数 m
,如果有多个解,则分行输出,每行一个解;如果无解则输出 No solution!
。
n = int(input())
flag = 0
for i in range(n+1):
if i%3==2 and i%5==3 and i%7==2:
print(i)
flag = 1
if flag == 0:
print("No solution!")
第6关:宝塔上的琉璃灯
问题描述: 有一座八层宝塔,每一层都有一些琉璃灯,每一层的灯数都是上一层的二倍,已知共有 765
盏琉璃灯,计算并输出每层各有多少盏琉璃灯。
编程要求
编写一个宝塔上的琉璃灯的小程序,计算并输出每层各有多少盏琉璃灯。
测试说明
平台会对你编写的代码进行测试:
输入格式 本题没有输入。
输出格式 输出为 8
行 每行都是一个正整数,从上往下数字依次增大,每个数字代表本层宝塔上的琉璃灯数目。
# from itertools import count
# for first in count(1,1):
# floors=[first*(2**i) for i in range(8)]
# if sum(floors)==765:
# for index,value in enumerate(floors,start=1):
# print(f'{value}')
# break
# 方法二
for x in range(1,10):
if x+2*x+4*x+8*x+16*x+32*x+64*x+128*x==765:
print(x)
print(2*x)
print(4*x)
print(8*x)
print(16*x)
print(32*x)
print(64*x)
print(128*x)