☰
python题目练习5-药房管理//超级玛丽游戏//A+B Problem
2026/10/27 18:52:18 网站建设 项目流程

第一题:药房管理

1.1 题目描述

对药品的管理是其中的一项重要内容。现在药房的管理员希望使用计算机来帮助他管理。假设对于任意一种药品,每天开始工作时的库存总量已知,并且一天之内不会通过进货的方式增加。每天会有很多病人前来取药,每个病人希望取走不同数量的药品。如果病人需要的数量超过了当时的库存量,药房会拒绝该病人的请求。管理员希望知道每天会有多少病人没有取上药。

1.2 输入格式

共 3 行,第一行是每天开始时的药品总量m。

第二行是这一天取药的人数。

第三行共有 n个数,分别记录了每个病人希望取走的药品数量(按照时间先后的顺序)。

1.3 输出格式

只有 1 行,为这一天没有取上药品的人数。

1.4 输入输出样例

输入 #1输出 #1
30
6
10 5 20 6 7 8
2

1.5 可参考代码

# 读入初始可用资源量 m(如药的总量) m = int(input()) # 读入物品/申请数量 n n = int(input()) count = 0 # 记录成功分配(被消耗掉)的数量 j = 0 # a 数组的下标,用于遍历每个申请 # 读入 n 个申请的量,存为字符串列表(后面用 int(a[j]) 逐个转成整数) a = input().split() # 外层循环遍历 n 次(实际由于 j 在内层 while 中会被加到 n, # 外层从第二次起内层 while 都不会执行,所以这个 for 效果等同于只跑一次) for i in range(n): # 内层 while:依次扫描每个申请 a[j],j 从 0 一直走到 n-1 while j < n: if m > 0: # 剩余资源 > 0 才有必要尝试分配 if m >= int(a[j]): # 当前剩余 m 足以满足第 j 个申请 m = m - int(a[j]) # 扣除对应量 count += 1 # 成功分配数 +1 # 若 m < int(a[j]):本次不分配,但 j 仍会前进(放弃该申请) j += 1 # 无论是否分配,下标都前进到下一个申请 # 总申请数 n 减去成功数 count,即为「未能被满足」的数量 no_medicine = n - count print(no_medicine)

第二题:超级玛丽

2.1 题目描述

超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景:

********
************
####....#.
#..###.....##....
###.......###### ### ###
........... #...# #...#
##*####### #.#.# #.#.#
####*******###### #.#.# #.#.#
...#***.****.*###.... #...# #...#
....**********##..... ### ###
....**** *****....
#### ####
###### ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
########################################## #----------#
#.....#......##.....#......##.....#......# #----------#
########################################## #----------#
#.#..#....#..##.#..#....#..##.#..#....#..# #----------#
########################################## ############

2.2 输入格式

无

2.3 输出格式

如描述。

2.4 输入输出样例

输入 #1输出 #1
无输入********
************
####....#.
#..###.....##....
###.......###### ### ###
........... #...# #...#
##*####### #.#.# #.#.#
####*******###### #.#.# #.#.#
...#***.****.*###.... #...# #...#
....**********##..... ### ###
....**** *****....
#### ####
###### ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
########################################## #----------#
#.....#......##.....#......##.....#......# #----------#
########################################## #----------#
#.#..#....#..##.#..#....#..##.#..#....#..# #----------#
########################################## ############

2.5 可参考代码

print( ' ********\n' ' ************\n' ' ####....#.\n' ' #..###.....##....\n' ' ###.......###### ### ###\n' ' ........... #...# #...#\n' ' ##*####### #.#.# #.#.#\n' ' ####*******###### #.#.# #.#.#\n' ' ...#***.****.*###.... #...# #...#\n' ' ....**********##..... ### ###\n' ' ....**** *****....\n' ' #### ####\n' ' ###### ######\n' '##############################################################\n' '#...#......#.##...#......#.##...#......#.##------------------#\n' '###########################################------------------#\n' '#..#....#....##..#....#....##..#....#....#####################\n' '########################################## #----------#\n' '#.....#......##.....#......##.....#......# #----------#\n' '########################################## #----------#\n' '#.#..#....#..##.#..#....#..##.#..#....#..# #----------#\n' '########################################## ############\n' )

第三题:A+B Problem

3.1 题目描述

输入两个整数 a,b,输出它们的和。

3.2 输入格式

输入两个以空格分隔的整数 a,b。

3.3 输出格式

输出一个整数,表示 a+b。

3.4 输入输出样例

输入 #1输出 #1
20 3050

3.5 可参考代码

a,b=input().split() a=int(a) b=int(b) print(a+b)

以上代码可供大家参考,如果大家有更好的方法也可以分享出来哈。

题目来源为:B2067 药房管理 - 洛谷、P1000 超级玛丽游戏 - 洛谷、P1001 A+B Problem - 洛谷。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询