北大编程网格【练习题】,北医计算概论课程编程题答案整理,C语言/python/C++

北大编程网格【练习题】答案整理

所有题目已经做完且编译通过,在这个过程中我也整理了所有的题目及其答案。
有需要的小伙伴可以留言或者私信我。
下面列举的题都有,一共如下的79个题目的答案(74页),都是成功编译通过的,质量很高。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

目录

练习1、编程基础综合练习(一)

题目一:输出连续素数

题目描述:编写程序,将大于整数m且紧靠m的k个素数输出(k小于10)。

输入:输入为一行,包括两个整数,第一个为整数m,第二个为个数k

输出:输出为一行,即满足条件的k个素数

题目二:相关月

题目描述:“相关月”是指那些在一年中月份的第一天星期数相同的月份。例如,九月和十二月是相关的,因为九月一日和十二月一日的星期数总是相同的。两个月份相关,当且仅当两个月份第一天相差的天数能被7整除,也就是说,这两天相差为几个整星期。又如,二月和三月一般都是相关月,因为二月有28天,能被7整除,也恰好为4个星期。而在闰年,一月和二月的相关月与它们在平年的相关月是不同的,因为二月有29天,其后每个月份的第一天星期数都推后了一天。

输入:输入的第一行为整数n(n≤200),其后n行,每行三个整数,依次为一个年份和两个月份,整数之间用一个空格分隔。

输出:输出有n行,对应于每个输入的年份和相应两个月份,如果这两个月份是相关的,则输出YES;否则,输出NO。

题目三:画矩形

题目描述:根据参数,画出矩形。

输入:输入由多行组成,每行四个参数:前两个参数为整数,依次代表矩形的高和宽(高不少于3行,宽不少于5行);第三个参数是一个字符,表示用来画图的矩形符号;第四个参数为1或0,0代表空心,1代表实心。当用户输入0时表示输入结束。

输出:输出画出的图形

题目四:花纹输出

题目描述:给定一个正整数n(n为奇数且n>1)按照以下规则输出n行*:对于中间一行,输出n个*;对于与中间一行距离为m的行,输出m个空格后输出n-2m个*。例如,假设输入为5,则输出为:

$ *
$ ***
$*****
$ ***
$ *

输入:只有一个整数n

输出:按照题目要求的规则输出n行*,每行以$开始。请注意:输出的时候每一行后面的空格不需要输出

题目五:日历问题

题目描述:在我们现在使用的日历中, 闰年被定义为能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它们不是闰年。例如:1700, 1800, 1900 和 2100 不是闰年,而 1600, 2000 和 2400是闰年。 给定从公元2000年1月1日开始逝去得天数,你的任务是给出这一天是哪年哪月哪日星期几。

提示:2000年1月1日是周六

输入:输入包含若干行,每行包含一个正整数,表示从2000年1月1日开始逝去的天数。输入最后一行是−1, 不必处理。可以假设结果的年份不会超过9999。

输出:对每个测试样例,输出一行,该行包含对应的日期和星期几。格式为“YYYY-MM-DD DayOfWeek”, 其中 “DayOfWeek” 必须是下面中的一个: “Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday” and "Saturday“。

题目六:分数求和

题目描述:输入n个分数并对他们求和,用约分之后的最简形式表示。
比如:
q/p = x1/y1 + x2/y2 +…+ xn/yn,
q/p要求是归约之后的形式。
如:5/6已经是最简形式,3/6需要规约为1/2, 3/1需要规约成3,10/3就是最简形式。

PS:分子和分母都没有为0的情况,也没有出现负数的情况

输入:第一行的输入n,代表一共有几个分数需要求和,接下来的n行是分数

输出:输出只有一行,即归约后的结果

题目七:不吉利日期

题目描述:在国外,每月的13号和每周的星期5都是不吉利的。特别是当13号那天恰好是星期5时,更不吉利。已知某年的一月一日是星期w,并且这一年一定不是闰年,求出这一年所有13号那天是星期5的月份,按从小到大的顺序输出月份数字。(w=1…7)

输入:输入有一行,即一月一日星期几(w)。(1 ≤ w ≤ 7)

输出:输出有一到多行,每行一个月份,表示该月的13日是星期五.

题目八:整数的质因子

题目描述:给出一个整数m(m>1),m总是可以写成一些质数的乘积,比如6=23,125=55*5,我们把这些质数称为m的质因子。

输入:输入一行,包含整数m。

输出:输出可能有多行,每行有m的一个质因子。按递增的顺序输出质因子,如果有重复的质因子只输出一次。

题目九:细菌的战争

题目描述:有两种细菌,一种是有害菌,繁殖能力很强,每小时会繁殖一倍;另一种是有益菌,繁殖能力较弱,每小时能繁殖百分之五。但在单位体积内,当有害菌数量超过一百万时,多出的细菌会因为密度太大而迅速死亡,直到细菌数量下降到一百万。已知每个有益菌每小时能消灭一个有害菌。给定单位体积内有害菌和有益菌的初始数量,请问多少小时后,有害菌将被有益菌消灭干净?

输入:输入的第一行为一个整数n,表示后边有n组数据。
每组数据占一行,有两个整数,依次为有害菌和有益菌单位体积中的初始数量。整数之间用一个空格分隔。

输出:输出有n行,每行一个整数,为每组数据对应的有害菌将被有益菌消灭干净所用的小时数。

练习2、程序调试

分数序列求和

题目描述:有一分数序列: 2/1, 3/2, 5/3, 8/5, 13/8, 21/13, … 求出这个数列的前n项之和。请对“习题一”讲义中最后一页所给的程序进行调试,指出其中的错误并加以改正。

关于输入:先输入一个整数m,表示要输入m个n;随后每次输入n后,求数列的前n项之和。

关于输出:输出有m行,每行输出当前输入n时数列前n项之和,保留小数点后3位小数。

练习3、编程基础综合练习(二)

题目一:鸡尾酒疗法

题目描述:鸡尾酒疗法,原指“高效抗逆转录病毒治疗”(HAART),由美籍华裔科学家何大一于1996年提出,是通过三种或三种以上的抗病毒药物联合使用来治疗艾滋病。该疗法的应用可以减少单一用药产生的抗药性,最大限度地抑制病毒的复制,使被破坏的机体免疫功能部分甚至全部恢复,从而延缓病程进展,延长患者生命,提高生活质量。人们在鸡尾酒疗法的基础上又提出了很多种改进的疗法。为了验证这些治疗方法是否在疗效上比鸡尾酒疗法更好,可用通过临床对照实验的方式进行。假设鸡尾酒疗法的有效率为x,新疗法的有效率为y,如果y-x大于5%,则效果更好,如果x-y大于5%,则效果更差,否则称为效果差不多。下面给出n组临床对照实验,其中第一组采用鸡尾酒疗法,其他n-1组为各种不同的改进疗法。请写程序判定各种改进疗法效果如何。

输入:第一行为整数n;
其余n行每行两个整数,第一个整数是临床实验的总病例数,第二个疗效有效的病例数。
这n行数据中,第一行为鸡尾酒疗法的数据,其余各行为各种改进疗法的数据。

输出:有n-1行输出,分别表示对应改进疗法的效果:
如果效果更好,输出better;如果效果更差,输出worse;否则输出same

题目二:求e

题目描述:给出n的值, 计算公式 e = 1 + 1/1! + 1/2! + 1/3! + 1/4! + … + 1/n!

输入:只有一个输入,即n的值, n>=1, 且n为整数

输出:按照上述公式求出的e的值(精确到小数点后6位)

题目三:角谷猜想

题目描述:所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。程序要求输入一个整数,将经过处理得到1的过程输出来。

输入:一个正整数

输出:从输入整数到1的步骤,每一步为一行,每一部中描述计算过程,假定输入为7,则输出为:
73+1=22
22/2=11
11
3+1=34
34/2=17
173+1=52
52/2=26
26/2=13
13
3+1=40
40/2=20
20/2=10
10/2=5
5*3+1=16
16/2=8
8/2=4
4/2=2
2/2=1
最后一行输出"End",如果输入为1,直接输出"End"

题目四:人民币支付

题目描述:从键盘输入一指定金额(以元为单位,如345),然后输出支付该金额的各种面额的人民币数量,显示100元,50元,20元,10元,5元,1元各多少张,要求尽量使用大面额的钞票。

输入:一个小于1000的正整数。

输出:输出分行,每行显示一个整数,从上到下分别表示100元,50元,20元,10元,5元,1元人民币的张数

题目五:求特殊自然数

题目描述:一个十进制自然数,它的七进制与九进制表示都是三位数,且七进制与九进制的三位数码表示顺序正好相反。编程求此自然数,并输出显示.

输入为1时,输出此自然数的十进制表达式;输入为2时,输出此自然数的七进制表达式;输入为3时,输出此自然数的九进制表达式。

输入:输入为1,2,3中的一个数。

输出:输出一行。输出为十进制或七进制或九进制数

练习4、2019年期终考试

题目一:癌细胞体积

题目描述:癌细胞,是一种变异的细胞,是产生癌症的病源。癌细胞与正常细胞不同,有无限增殖、可转化和易转移三大特点,能够无限增殖并破坏正常的细胞组织。癌细胞通常可以近似看作为一个球体,体积越大,癌细胞对周围组织的影响越大。现给出癌细胞的半径,请你计算出癌细胞的体积。其中π取3.14159。

输入:输入一个整数R为癌细胞的半径,数据范围位1 <= R <= 2000

输出:输出一个浮点数表示该直径对应的癌细胞的体积,结果保留小数点后3位

题目二:寻找三角形

题目描述:今天数学课学了三角形的相关性质,三角形任意两边之和一定大于第三边。回到家后,爸爸考验小明是否已经熟练掌握知识。爸爸给了先给了小明2根木棍,长度分别为a, b。接着爸爸在桌子上依次摆上n根木棍,第i根长为Li。
爸爸问小明,这n根木棍中,最多有多少根能和小明手里的2根木棍组成三角形?

输入:输入分为3行,第一行是两个正整数a, b (1 <= a, b <= 100),表示小明手里的木棍的长度。第二行是一个正整数n (3<= n <= 20),代表桌上陈列的木棍的个数。第三行有n个正整数,其中第i个数代表的是第i根木棍的长度Li (1<= Li <= 100)。

输出:输出为一个正整数,表示这n根木棍中,最多有多少根能和小明手里的2根木棍组成三角形。

题目三:凑数

题目描述:有数若干,选两个数凑出一个目标数字。

例如,有 1 2 3 4 5 6,凑数11.

5+6=11,选择5,6,5,6在这组数的位置为4,5,即选择4,5号数字凑出11.

输入:第一行为n, (1 <= n <= 100)。第二行为n个数字input,第三行为目标数字target。

输出:输出凑出目标数字target的两个数字在input中的位置(位置编号从0开始。输入数据中,如果存在这样的两个数,它是唯一的)
如果找不到这样的数,输出-1 -1

题目四:美丽编号

题目描述:实习医生小明同学在统计住院单的时候,对病人的住院编号产生了兴趣。他认为一个编号是“美丽”的当且仅当这个数字只包含2、3、5这三个质因子。编号保证为正整数,且可以认为1也是“美丽”的。
现在给定n个编号,小明想知道一共多少个数是美丽的

输入:输入一共包含两行。
第一行一个正整数n,1<=n<=10000,表示编号的个数。
第二行是n个用空格隔开的正整数ai, 1<=ai<=1000000,每个ai表示一个编号。

输出:输出为一行,一个整数tot,表示这n个编号中,有多少数字是“美丽”的。

题目五:最后一块石头

题目描述:工地上有一堆废弃石料需要被粉碎处理,其中每块石头的重量都是正整数。每一次粉碎处理中,工人会从石头堆中按顺序选出两块石头,然后将它们一起粉碎,粉碎的可能结果如下:
\1. 如果两块石头重量相等,那么两块石头都会被完全粉碎;
\2. 如果两块石头重量不等,那么重量较轻的石头将会完全粉碎,而重量较重的石头会剩下,且新重量为两块石头原本重量的差值。
一次粉碎后若剩下了石头,则从石堆中继续拿下一块石头,和上一轮剩下的石头一起粉碎;如果未剩下, 则拿接下来两块新的石头继续粉碎。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。
(初始时刻石堆中石头总量不超过30, 每块石头重量不超过1000。)

输入:第一行输入一个正整数n,表示石头总量;第二行按顺序输入n块石头的重量,用空格分隔。

输出:最后剩下的一块石头的重量。(如果没有石头剩下,就返回 0。)

题目六:相似的名字

题目描述:小明在整理住院单的时候,发现很多病人的名字是“相似”的,这里的“相似”是指:
1)名字长度相同;
2)名字互为字母异位词(即拥有相同的字母,但是顺序可能不同)。
一个简单的例子:“abc”, “bca”, “cba”, "cab"两两都是相似的。但是"aab"和“abc”不是相似的,"aab"和“abb”也不是相似的。
另外,名字自身和自身也是相似的。

输入:输入包含若干行。第一行一个整数n,1<=n<=100,表示接下来有n行数据需要判断。
接下来的n行,每行是两个用空格隔开的单词,表示两个名字,名字的长度不超过200个字符。
保证两个名字都是由’a’-'z’构成的。

输出:输出一共n行。输出"YES"表示两个名字相似,输出"NO"表示两个名字不相似。

题目七:新年晚会

题目描述:元旦佳节就要到了,某医学院举办了一场小型新年晚会,观众分为老师、医学院学生和非医学院学生三类。每个观众入场的时候都会登记自己的身份(老师/医学院学生/非医学院学生)和职工号/学号(职工号/学号不超过6位整数),并按顺序领到一个属于自己的晚会编号(从1开始编号)。入场以后,观众按照身份分为三个区域,区域内按照职工号/学号升序就座。现在请你按照座位顺序输出所有人的晚会编号。(先输出老师,其次是医学院学生,最后是非医学院学生)

输入:第一行,一个整数n(n<=300),表示所有参加晚会的人数。
之后n行,每行有2个数字,数字之间用逗号隔开,分别表示观众的身份(1表示老师,2表示医学院学生,3表示非医学院学生)和职工号/学号。

输出:n行,每行为一个晚会编号。

题目八:最长连号

题目描述:输入n个正整数,(1<=n<=10000),要求输出最长的连号的长度。(连号指从小到大连续自然数)

输入:第一行,一个数n; 第二行,n个正整数,之间用空格隔开。

输出:一个数,最长连号中数的个数。

题目九:田忌赛马

题目描述:语文课上学完《田忌赛马》后,小明深有感触。周末,他拉着他的同学小强去马场里实战演练。他们各自挑选了n匹马,进行n场比赛,赢一场则加一分,最后分数高的获胜。每一匹马必须也只能参加一场比赛。每匹马都是独一无二的,都有各自的能力值v,并且互不相同,并且能力值大的马一定能跑赢能力值小的马。
小强负责扮演齐威王,他会按照能力值从强到弱依次派出他的马。请问小明能否通过恰当的排列顺序取胜?

输入:输入分为3行,第一行是一个正整数n (3<= n <= 9,n一定是奇数),代表他们要进行比赛的总场次以及各自挑选的马的数量。第二行有n个正整数,按照数值从大到小依次给出,其中第i个数代表的是第i场小强要出战的马的能力值vi (1<= vi <= 100)。第三行有n个正整数,按照数值从大到小依次给出,分别为小明挑选的战马的能力值ui (1<= ui <= 100)。每匹马的能力值都是独一无二的,并且互不相同。

输出:如果小明可以获胜,则输出yes,否则输出no。

题目十:括号闭合问题

题目描述:给定一个只包含’(’ , ‘)’ , ‘[’ , ‘]’ , ‘{’ , '}'的字符串,判断该字符串中的括号是否正确闭合。如"“、”[()]“、”{()}[]“为正确闭合。”([)]“、”{[)}"为错误闭合。

输入:一行输入,为一个只包含’(’ , ‘)’ , ‘[’ , ‘]’ , ‘{’ , '}'的字符串。字符串长度不超过1000.

输出:正确闭合输出"yes",否则输出"no"。

题目十一:护林员盖房子

题目描述:在一片保护林中,护林员想要盖一座房子来居住,但他不能砍伐任何树木。现在请你帮他计算:保护林中所能用来盖房子的矩形空地的最大面积。

输入:一行输入,为一个只包含’(’ , ‘)’ , ‘[’ , ‘]’ , ‘{’ , '}'的字符串。字符串长度不超过1000.

输出:正确闭合输出"yes",否则输出"no"。

练习5、2018年期终考试

题目一:就医问题

题目描述:医院的心理咨询中心总是十分繁忙,有很多病人排队挂号等待就诊,就诊的每个病人都有一个对应的号。今天又是十分繁忙的一天,有医生A和医生B坐诊,对挂号号码为奇数的病人,需要医生A来诊断病情,对挂号号码为偶数的病人需要医生B来诊断病情。

由于病人人数众多,所以需要你编写一个程序,帮助病人找到对应的医生。

给定病人的号码x(0 < x < 1001),判断该病人需要哪个医生来诊断。

输入:输入仅一行,为病人的号码x。

输出:输出仅一行,如果输入的x是奇数,则输出医生代号是字符A;如果输入的x是偶数,则输出医生代号是字符B。

题目二:马虎的佩奇

题目描述:佩奇一大早便从家里出发去参加期待已久的期末考试,假设佩奇的速度为v1 km/分钟,然而当佩奇出发t分钟后,妈妈发现马虎的佩奇忘记带了准考证,便以 v2 km/分钟 的速度去追赶佩奇,假设佩奇家距学校 S km, 请问妈妈能否在佩奇到达学校前追赶到佩奇?

如可以追到输出“YES”, 否则输出“NO"

输入:输入只包含1行,分别为 整数 v1,v2(1<=v1,v2<=50), 浮点数 t (0 < t <=100), 整数S (0 < S <=10000)

输出:输出只含一行,为“YES”或 “NO”

题目三:多多爱赚零花钱

题目描述:勤劳的多多上大学后,一直利用节假日做一些兼职赚取零花钱。年尾了,多多想知道过去这一年自己的赚钱情况。给出12个月中,多多每个月赚取的零花钱金额,求多多平均每个月赚取多少钱。

输入:12行,每行是一个浮点数,表示多多当月赚取的零花钱金额

输出:1行,由’$'符号和一个浮点数组成,表示多多平均每个月赚取的零花钱金额,精确到小数点后两位

题目四:因子问题

题目描述:任给两个正整数N和M,求一个最小正整数a,使得a和M-a都是N的正因子。

输入:包括两个整数N、M。其中N不超过1000000。

输出:输出一个正整数a,为满足要求的数。如果对于某个样例不存在这样的正整数,则输出-1

题目五:基因编辑

题目描述:脱氧核糖核酸由两条互补的碱基链以双螺旋的方式结合而成,而构成DNA的碱基共有4种,分别为腺瞟呤(A)、鸟嘌呤(G)、胸腺嘧啶(T)和胞嘧啶(C)。

人类的性状就是由这些碱基组成的基因片段,转录表达的。先已知鸟嘌呤(G)、胸腺嘧啶(T)组成的基因片段GT会出现某种缺陷性状,现只考虑其中的一条碱基链,利用基因编辑技术将GT片段
改造为GG,以弥补基因缺陷。

输入:一个字符串,表示一条碱基链。这个字符串只含有大写字母A、T、G、C,分别表示腺瞟呤、胸腺嘧啶、鸟嘌呤和胞嘧啶。字符串长度不超过255。

输出:一个将输入的字符串中所有的GT片段编辑为GG片段的字符串。

题目六:孪生素数

题目描述:如果n和n+2都是素数,则称它们是孪生素数。编写程序,输入m,输出两个数均不超过m的最大孪生素数。

输入:输入为一行,包含一个整数m,5<=m<=10000。

输出:输出最大孪生素数,较小的数字在前。

题目七:海王

题目描述:最后,海王终于赶到了海沟族领地。为了拿到黄金三叉戟(就是个鱼叉),他需要杀出一条血路。海王很强,但是小怪兽很多,考虑到体力消耗,第一个小时海王只能干掉总数的一半多一个怪兽,后一个小时只能干掉前一个小时剩下的一半多一个怪兽,请问,总共有多少只怪兽?

输入:一个正整数n,表示只剩下一个怪兽的时候是在第n小时发生的。
其中,n大于1且小于30

输出:输出第一个小时开始打的时候怪兽的总数

题目八:筛选病人

题目描述:季节交替的时候是过敏性鼻炎的高发期,有很多人会出现过敏性鼻炎的症状。为了更好地进行分流治疗,医院在挂号时要求对病人的体温和打喷嚏情况进行检查,对于体温超过37.5度(含等于37.5度)并且打喷嚏的病人

初步判定为过敏性鼻炎(初筛)。现需要统计某天前来挂号就诊的病人中有多少人被初筛为过敏性鼻炎的病人。

输入:第一行是某天前来挂号就诊的病人数n。(n < 200)
其后有n行,每行是病人的信息,包括四个信息:
姓名(字符串,不含空格,最多8个字符,每个人姓名的首字母都不相同)、年龄(int)、体温(float)、是否打喷嚏(整数,1表示打喷嚏,0表示不打喷嚏)。每行四个信息之间以一个空格分开。

输出:输出所有被初步筛选为过敏性鼻炎的病人的以下三个信息,包括姓名、年龄、体温。每个信息中间用空格隔开。要求是按照年龄从大到小的顺序输出,如果年龄相同,则按姓名首个字符的字典序输出。

题目九:谁能拿到最多的硬币

题目描述:有n个硬币排成一排,每个硬币上用一个数字标识了它的价值。每次要你从最左边或者最右边拿出一个硬币。总共拿k次,写一个算法,使能拿到的硬币的价值和最大。

输入:输入包含两行,第一行为n, k;
第二行包含n个数字,表示n个硬币的价值。

1 <= k <= n <= 100000
单个硬币的价值大于0且不超过10000.

输出:输出可以拿到的k个硬币最大的价值和。

题目十:迷信的病人

题目描述:医院为了方便对患者进行建档和管理,引入了9位整数ID号来标识每个病人。最近医院入住了一个迷信的病人,他认为ID号的好坏直接决定了自己的命运。他对ID号x有如下要求:
(1)x的前三位数构成的整数是素数
(2)x的后三位数构成的整数是平方数(所谓平方数,是指它是某一个正整数的平方,e.g. 1,4,9,16…)
(3)x中不包含"13"
为了避免不必要的医患矛盾,医院须尽量满足他的需求。现给定正整数区间[m,n],请你判断存在几个满足病人需求的ID号。

输入:两个正整数m,n,以空格隔开。(999999999>=n>=m>=111111111)

输出:一个整数(满足要求的ID的个数)。

题目十一:明哥之问

题目描述:唐吉诃德多弗朗明哥率领手下击败力库一族成为了德雷斯罗萨的新国王。有一天他要处决一批力库一族的余党,此时他突发奇想制定了一条有趣的规则:将所有人从1开始编号,第一个人从1开始报数,每次数到m的人被处决,后面的人再从1开始报数…依此循环往复,直到剩下最后一人。居鲁士非常幸运地成为了那最后一人,但明哥要求他回答这批待处决的力库一族的余党至少有多少人,如果答对就可以放他一条生路。居鲁士只知道自己的编号是k,你可以帮他回答明哥的“死亡之问”吗?

输入:两个整数m和k,用逗号分隔。m和k的含义如上所述。

输出:一个整数,表示这批待处决的力库一族的余党至少有多少人。

练习6、2017年期终考试

题目一:探险家丁丁

题目描述:丁丁是一个著名的探险家,总喜欢去各种神秘的地方探险。
这次丁丁来到了亚斯蓝大陆,亚斯蓝大陆充满了各种挑战,给丁丁造成了巨大的困难,其中最令丁丁困扰的便是亚斯蓝大陆多变的温度。
温度对人和生物的活动有重要的影响。通常情况下温度有两种表示方式:摄氏温度和华氏温度。丁丁手中有一个只能测华氏温度的温度计。但是丁丁却想知道华氏温度对应的摄氏温度。请聪明的你编写一个程序为丁丁解决这个问题。

输入:输入一行,包含一个双精度浮点数f,表示华氏温度。(f >= -459.67)

输出:输出一行,包含一个双精度浮点数,表示对应的摄氏温度,要求精确到小数点后5位。

题目二:摘礼物

题目描述:已知礼物的个数n(n<=1000),和每个礼物的高度i,以及小明能够到的最大高度m。n、i、m均为正整数。你能算出小明最多能摘到多少个礼物吗?

输入:输入共3行,第一行为礼物的个数n(n<=1000)。第二行依次输入每个礼物的高度i。第三行输入小明最大能够到的高度m,i、m均为正整数。如果m大于或等于i,则表示能够到。

输出:输出1行,为小明能够到的礼物的个数。

题目三:计算菌落面积

题目描述:医学院拿到了一批显微镜下拍摄得到的细菌图像数据,每张图像是一个大小为m行n列的矩形,在图像中细菌区域用1表示,背景区域用0表示,要求你写程序计算出图像中细菌区域的面积,即图像中1的个数。

输入:第一行输入m和n(100=>m>0,100=>n>0),之后m行,每行包含n个数,表示图片矩阵的元素,元素值为0或1,数字之间用空格隔开。

输出:输出只有一行,为图像中细菌区域的面积。

题目四:相交的圆

题目描述:在一个二维直角坐标系中,有n个圆,每个圆用三个整数(xi, yi, ri)来描述(1<=i<=n),其中(xi, yi)表示圆心坐标,ri表示圆的半径。现在你需要判断这n个圆之间是否有相交(注意:两个圆重合或完全覆盖也算相交,但是相切不算)。如果相交,输出Yes,否则,输出No。

输入:输入的第一行给出一个整数n(2<=n<=1000),表示坐标系中圆的个数。之后是n行输入,表示n个圆。每行三个整数,分别是xi, yi, ri。其中(0<=xi<=1000, 0<=yi<=1000, 0< ri<200)。

输出:输出只有一行。当判断有圆相交时,输出Yes,否则输出No。

题目五:寻找最长公共前缀

题目描述:请从4个字符串中找出最长的公共前缀。

输入:输入有4行。每行输入是一个字符串(可能包含空格),长度不超过255个字符。

输出:所有输入字符串的公共前缀。如果没有公共前缀,则程序不输出内容。

注意:编程语言选择python

题目六:特殊数之和

题目描述:求s=a+aa+aaa+aaaa…+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时一共有5个数相加)。

输入:输入一行,包含两个整数n(1<=n<=10)和a(1<=a<=9),其中n表示数的个数。

输出:输出s,即n个数之和。

题目七:谁是冠军

题目描述:最近学校又举办起了一年一度的十佳歌手大赛,每一个参赛选手演唱完毕后将由5位评委进行打分,最后记录的分数为去掉一个最高分,去掉一个最低分,取剩下的分数的和。聪明的你能写一个程序直接选出本次比赛的冠军吗(若有多个人得分相同且最高,则冠军为第一个得最高分的人)?

输入:输入包含n+1行,第一行为一个整数n(n <= 100),接下来的n行为5位评委为1到n号选手打出的分数,所打分数均为整数,且分布在0到100之间。

输出:输出为冠军的编号及其最终分数,二者用一个空格隔开。

题目八:趣味游戏大赛

题目描述: 给定10个整数的序列,要求对其重新排序。排序要求:
1.奇数在前,偶数在后;
2.奇数按从大到小排序;
3.偶数按从小到大排序。
当选手做出这道题目,即可得到丰厚的奖励。你准备好拿奖了吗?

输入:输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于100。

输出:按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。

题目九:购买礼物

题目描述:要过新年了,小明想给许多同学购买礼物,选好礼物结账时发现带的钱不够,所以只能选择留下一部分。每个要送礼物的同学在他心中有个优先级,小明决定优先级最大的优先购买,他为每个人挑选的礼物价格不同,下面请你算出小明能给多少人买到礼物。

输入:输入有N+1行,第一行两个数字,选的礼物总数N和带的钱的总数M,后面N行每行包含两个数字,第一个数字表示礼物的价格P,第二个数字表示这个礼物要送的人在他心中的优先级L,越大越优先购买,优先级不能相同(N<100 M<1000 P<100 L<200 N,M,P,L均为整数)

输出:输出一行,能买的礼物个数

题目十:字符统计

题目描述:小明刚刚在计算概论课上学习了字符串,现在他遇到了一个棘手的问题,希望你能帮他解决。他有很多的文本,其中只包含26个小写英文字母和空格。他希望能用编程的方式统计出26个英文字母出现的次数。

输入:第一行一个正整数n(n<=10)。接下来有n行,每行一个字符串,其中只包含26个小写英文字母和空格。每个字符串的长度<=200。

输出:输出共n行。每行输出从a到z共26个字母的出现次数,用一个空格隔开。

题目十一:最佳凑单

题目描述:消费者为了享受商家发布的满减优惠,常常需要面临凑单问题。
假设有n件商品,每件的价格分别为p1,p2,…,pn,每件商品最多只能买1件。为了享受优惠,需要凑单价为t。那么我们要找到一种凑单方式,使得凑单价格不小于t(从而享受优惠),同时尽量接近t。被称为“最佳凑单”
如果不存在任何一种凑单方式,使得凑单价格不小于t(即无法享受优惠),那么最佳凑单不存在。
比如当前还差10元享受满减,可选的小件商品有5件,价格分别为3元、5元、8元、8元和9元,每件商品最多只能买1件。那么当前的最佳凑单就是11元(3元+8元)。

输入:第一行输入商品数n(n<=10)和需要凑单价t,如:5 10; 第二行输入每件商品的价格,如:3 5 8 8 9

输出:如果可以凑单成功,则输出最佳凑单的价格,如:
输入
5 10
3 5 8 8 9
输出
11

如果无法凑单成功,则输出0。
如输入
5 10
1 1 1 1 1
则无法凑够10元,输出
0

练习7、2016年期终考试

题目一:三角形判断

题目描述:输入三个正整数表示三条边的长度,判断这三条边能否构成一个三角形,如果能,则输出“yes”,否则输出“no”。

输入:输入是三个正整型数,分别表示三条边的长度。

输出:yes 或者 no

题目二:猴子吃桃

题目描述:有M个桃子,猴子每天吃E个, 过了D天还剩下多少

输入:第一行包含一个整数n,为总的测试组数;接下来为n组数据,每组数据包括3个正整数M、E和D,用空格隔开

输出:输出有n行:对于每组数据,输出对应的剩余桃子的数量(如果吃光则输出0)

题目三:学英语字母

题目描述:小明为了让小刚自己也可以学习英语字母,想请你帮他编写个程序,可以告诉小刚任意字母的后一个字母是什么。比如,对于大小字母C,那么后一个字母是D;对于小写字母e,那么后一个字母是f。对于大小字母Z和小写字母z,由于是最后一个字母,你需要输出一个空格。

输入:第一行是一个整数n,为总的字母数目(n<=52)。接下来n行,每行一个英语字母。

输出:一共n行,每行输出对应英语字母的后一个字母。

题目四:防雾霾

题目描述:最近北京空气质量特别差,出门都要记得带防雾霾口罩哦。
但是口罩也不是永久有效的。假设一天的雾霾严重程度是a,口罩的健康度为m,一天后口罩的健康度就降低为m-a,如果一天过去后口罩健康度小于等于0,那么第二天就需要换一个新的口罩。
现在给出连续n天的雾霾严重程度,请你帮忙计算一下至少需要储备多少口罩才能度过这些天。

输入:输入共两行
第一行两个整数n、m,分别表示连续的雾霾天数和口罩的初始健康度。(1<=n<=100,1<=m<=1000)
第二行n个整数a1,a2…an,ai表示第i天的雾霾严重程度。(1<=ai<=500)

输出:输出共一行,即至少需要储备的口罩数量

题目五:找到不一样的数

题目描述:有n个整数,在这n个整数中,只有一个数出现了奇数次,其余都出现了偶数次,你能找到出现奇数次的数么?

输入:输入有两行,第一行是一个整数n(1<=n<=100),表示数的数量
第二行是n个整数,每个数在1-100之间,用空格隔开。输入时保证这n个整数只有一个数会出现奇数次。

输出:输出一行,一个整数,即出现奇数次的那个数。

题目六:集体照

题目描述:医学部口腔3班n位同学约定拍集体照,n大于1且不超过100。摄影师要求同学按照身高站成两排,保证第二排的人身高都要大于等于第一排的人,且第二排的人数和第一排的人数相等或者比第一排多一个人。
输入n位同学的身高,请问第二排中身高最矮的人的身高是多少?

输入:输入有多组,每组有2行,第一行输入一个整数n。
第二行有n个整数,对应n位同学的身高(厘米),各数字间以空格隔开。
当输入n==0时,结束输入。

输出:输出有多行,按输入顺序,每行为对应组中第二排最矮的身高。

题目七:密码风云

题目描述:密码学的历史大致可以追溯到两千年前,相传古罗马名将恺撒(Julius Caesar)为了防止敌方截获情报,便用密码传送情报。
恺撒的做法很简单,就是对十个阿拉伯数字建立一张对应表,如将数字0变成数字5,数字1变成数字6,即每个数字变成其值加5之后对10取余得到的数字,5变成1,6变成2,具体变化规律见下表。
原文 密文
0 5
1 6
… …
5 0
6 1
… …
8 3
9 4
数字按照上述规律变换,如“12345”转换成“67890”。

输入:输入包括两行,每行均为一组0-9之间的整数。第一行是一组原文,要求输出其加密后的密文;第二行是一组经加密后的密文,要求输出其原文。每行输入均为10个数,相互之间用空格隔开。两行输入数字之间没有关系。

输出:两行,第一行为第一行输入对应的密文,第二行为第二行输入对应的原文,相互之间用空格隔开。

题目八:计数问题

题目描述:试计算在区间 1 到 n 的所有整数中,数字 x(0 ≤ x ≤ 9)共出现了多少次?例如,在 1 到 11 中,即在 1、2、3、4、5、6、7、8、9、10、11 中,数字 1 出现了 4 次,数字2出现了1次。

输入:输入共 1 行,包含 2 个整数 n、x,之间用一个空格隔开。

输出:输出共 1 行,包含一个整数,表示 x 出现的次数。

题目九:点赞狂

题目描述:小明连续发了m条微博,并记录了所有n个好友的点赞记录,现在请你帮忙统计他的好友中有多少人是点赞狂。
注:假设某个好友对小明的微博点赞的条数是总条数的一半或一半以上,则称此人称为“点赞狂”。

输入:输入数据第1行是一个整数T,表示有T组测试用例;每个测试用例的第1行是两个整数n和m,n是好友数,m是连续发的微博条数;
接下来是n行,每行代表一个好友的点赞情况,每行m个整数(0或1),0代表没点赞,1代表点赞,即第 i 行第 j 列表示第 i 个好友对小明发的第 j 条微博是否点赞,如果是0,表示没有点赞,如果是1则表示有点赞。

限制条件:
1 <= T <= 20
1 <= n <= 200
1 <= m <= 200

输出:输出有T行,按输入顺序,对每组测试用例,输出点赞狂的个数,每组数据输出一行。

题目十:终极大奖

题目描述:有n个人参与抽奖,然而他们的机会并不均等,这些人按顺时针方向围成一圈(编号1到n),从第1号开始报数,一直数到m,数到m的人失去一次抽奖的机会,再接着从1开始报数。当一个人的机会为0时,不再参与抽奖,就这样,直到圈内只剩下一个人,这个人将获得终极大奖。

输入:输入有多组,每组有有2行,第一行输入两个整数n、m,分别代表参与抽奖的人数和每次数数数到几。
第二行输入n个整数,代表由编号1到n对应的每个人拥有的机会数量。
当n和m输入均为0时,结束输入。
1<=n<=100,1<=m<=100

输出:输出有多行,按输入顺序,每行为对应组中获得终极大奖的人的编号。

题目十一:煎鸡排

题目描述:辛苦工作一天后,饿坏了的程序员去学五吃鸡排饭。程序员点了n份鸡排。每个鸡排有两个面,每一面都需要在平底锅上煎1分钟。不幸的是,厨师只有一个平底锅,在这个平底锅上,一次只能同时烹饪k个鸡排的一个面。请计算厨师需要花多少时间煎这些鸡排。

输入:输入两个整数n和k,空格隔开。(1 ≤ n, k ≤ 1000)

输出:输出厨师煎n个鸡排,最少需要的分钟数。

练习8 动态规划

1.多边形游戏

题目描述:

多边形游戏是一种在一个具有n个顶点的多边形上进行的游戏。如图1是一个n=4对应多边形,每个顶点上都有一个整数,每条边都有一个运算符+或者*,所有边按从1到n进行编号。
img
游戏都首先移除一条边,接下来可以进行如下操作:选择一条边E和与之相关联的点V1和V2,用一个新的点替换它们,新点上的整数为V1,V2上的整数用E上的操作符运算后的结果。
没有边时游戏结束,游戏得分就是最后剩下的那个顶点上的整数。
对于图1中的多边形,如果游戏者首先去掉3,然后依次去掉1、4、2,最后得分将是0。
img
请你写一个程序,对于给定的多边形,计算出可能得到的最高分,并列出第一步移除哪些边可以得到这个最高分。

2.基因串

题目描述:

基因串是由一串有限长度的基因所组成的,其中每一个基因都可以用26个英文大写字母中的一个来表示,不同的字母表示不同的基因类型。一个单独的基因可以生长成为一对新的基因,而可能成长的规则是通过一个有限的成长规则集所决定的。每一个成长的规则可以用三个大写英文字母A1A2A3来描述,这个规则的意思是基因A1可以成长为一对基因A2A3。
用大写字母S来表示一类称作超级基因的基因,因为每一个基因串都是由一串超级基因根据给出的规则所成长出来的。
请写一个程序,读入有限条成长的规则和一些我们想要得到的基因串,然后对于每个基因串,判断它是否可以由一个有限长度的超级基因串成长得出。如果可以,给出可成长为该基因串的最短超级基因串的长度。

3.象棋比赛

题目描述:

你需要从你的棋牌协会中选出30人参加一场团队邀请赛,比赛共30场,15人先手持红,另15人后手持黑.每个人先手和后手的能力值有所不同,现在你需要从你的协会里选出这30人,使得其中15人持红的能力值与另外15人持黑的能力值的总和尽可能大.

4.地板覆盖

题目描述:

用1*2的地板砖覆盖n*m的地板有多少种方案呢?

5.石子游戏

题目描述:

现有4堆石子,两个人轮流取石子,他们有n种可能的取法,取法表示从第1堆取A1个石子,从第2堆中取B1个,第3堆取C1个,第4堆取D1个.如果取的时候某一堆的石子数比所要取的石子数要少,则这种取法是不可行的.取到最后没有可行取法的人就算输了.
现给出4堆石子的石子数目以及n种取法,请问如果两个人都采用最优取法,先取的人是赢还是输.

练习9、2015年期末考试

题目一:两点间的距离

题目描述:空间中一个点可以使用一个三维坐标(x,y,z)来表示。给定空间中两个点的坐标,请你给出这两点之间的直线距离。

输入:输入包含两行,每行是三个浮点数,分别表示了两个点的x、y、z坐标值,坐标之间用逗号分隔

输出:输出只有一行,是两点间的直线距离,结果保留两位小数

提示:输入3个浮点数,相互之间用逗号隔开,可以按如下方式处理:
double x, y, z;
scanf(“%lf,%lf,%lf”, &x, &y, &z);
求平方根的函数double sqrt(double x)包含在 math.h中。

题目二:选美比赛

题目描述:现在A市举办选美比赛,A市的市长规定,男生的体重高于100KG为美,女生的体重高于80KG为美。现在给出一个人的性别和体重,判断这个人是否为美人。

输入:输入数据为一行,有两个数据,用空格隔开。第一个数据是一个字符,为M或者F,如果是M代表是男生,如果是F代表是女生;第二个数据是一个整数,为该人的体重。

输出:如果给出的人为美的,那么输出"Beauty",否则输出"Not beauty"。

题目三:正整数的约数的数目

题目描述:对于一个正整数n,一个正整数s,如果n能被s整除,则称s是n的约数。给定一个正整数n,请计算它有几个约数。

输入:一个正整数n

输出:一个正整数,其值为正整数n的所有约数的数目

题目四:级数求和

题目描述:已知:Sn = 1+1/2+1/3+…+1/n。显然对于任意一个整数k,当n足够大的时候,Sn大于k。现给出一个整数k(1<=k<=15),要求计算出一个最小的n,使得Sn>k。

输入:一个整数 k

输出:输出整数 n

题目五:多个正整数的最大公约数和最小公倍数

题目描述:求多个正整数的最大公约数和最小公倍数

输入:输入有两行。
第一行,一个正整数n (n<=10)。
第二行,n个正整数,每个数字之间用空格间隔。

输出:输入有一行。其中包含两个数字:第一个是最大公约数,第二个是最小公倍数。两者之间用一个空格间隔开

提示:不用考虑最小公倍数超出整型变量表示范围的问题

题目六:颜值测试

题目描述:“北京经纬整形医院”驰名中外,有很多人到此整容,从而提升自己的颜值。该医院会给每一位来整容的人做一个“颜值水平”测试,测试项目包括:其目标颜值水平、其目前颜值水平、两个颜值水平的差异。每个人的颜值用一个二维矩阵表示,现在请来自医学部的你帮助这些渴望变美的人完成这个测试。

输入:输入第一行为每个人颜值矩阵的行数m和列数n(1<=m,n<=100),用空格隔开。后面有2*m行数据,每行n个整数,用空格隔开。前m行为目标颜值水平的矩阵。之后的m行为原始颜值水平的矩阵。

输出:输出的结果为两个矩阵的颜值差,即两个矩阵做矩阵减法得到的矩阵。

提示:
矩阵可表示为二维数组。矩阵减法通常是在两个维数相同的矩阵之间进行,其计算方法是对应位置的数值直接做算术减法,例如矩阵A和B,做减法(A-B)后得到矩阵C,C[i][j] = A[i][j] - B[i][j]。
例如目标颜值矩阵为:
9 9 9
9 9 9
9 9 9
原始颜值矩阵为:
0 0 0
0 0 0
0 0 0
进行矩阵减法得到的矩阵为
(9 - 0) (9 - 0) (9 - 0)
(9 - 0) (9 - 0) (9 - 0)
(9 - 0) (9 - 0) (9 - 0)
即:
9 9 9
9 9 9
9 9 9

题目七:IBM编码(字符串)

题目描述:对于给定的字符串,把其中从a-y、A-Y的字母用其后继字母替代,把z和Z用a和A替代。只改变字符串中的字母,字符串中的其他字符保持不变。

输入:第一行是字符串的数目n(n<=10),用gets(s)读取,再用n=atoi(s)获得整数数值
其余n行每行一个可能含空格的字符串,每个字符串长度小于50个字符,用gets(s)方式读取每行字符串
如:
4
hello how are you?
are you ready?
yes, I’m ready!
OK, let’s go!

输出:输出有n行,每行是一个字符串的编码结果
如:
ifmmp ipx bsf zpv?
bsf zpv sfbez?
zft, J’n sfbez!
PL, mfu’t hp!

提示:避免gets和scanf在使用时的冲突:用n=atoi(s)把字符串s转换为整数,函数atoi()定义在头文件stdlib.h中

题目八:表示大整数

题目描述:若一个数太大,人们很难正确读出这个数。例如1亿=100000000,很容易就把8个0数成7个或9个0,从而读错。
为了避免这种误差,提出一种方法,写数字的时候,每隔一定长度k,加一个逗号。
现在给你一个数n,以及逗号的间隔长度k,请写出用逗号隔开之后的数。

输入:第一行一个数t(t<=10),表示数据组数。
接下来t行,每行两个整数,n和k,用空格隔开。其中n不超过int的表达范围,1<=k<=5。
如:
3
12345 3
12345 1
-1234 2

输出:一共t行,每行为一个用逗号隔开之后的数。
如:
12,345
1,2,3,4,5
-12,34

题目九:医院排号

题目描述:北大校医院最近更新了自己的网上排号系统,考虑到病人的病情程度不同,需要优先考虑病情较重的病人,病情相同的情况下需要把先在网上挂号的病人排在前面。现在给出了请求在同一天看病的n个病人网上挂号的顺序,但是校医院一天只能接收k个病人,请输出校医院当天接收的所有病人的看病顺序。

输入:第一行:一个整数t,表示数据的组数:
对于每组数据,分别有两行:
第一行:两个整数n 和k (k不一定小于n),表示请求在同一天看病的病人有n个,医院当天只能接受k个病人
第二行:n个整数,第i个整数表示第i个在网上挂号的病人的病情严重程度
如:
2
5 3
2 3 4 7 4
6 2
5 10 4 6 9 7

输出:对每组数据输出两行:
第一行:一个整数m(m<=k),表示医院当天实际接受的病人的个数
第二行:一个整数序列,包含m个整数,用空格隔开,最后一个整数之后是一个换行符,表示医院当天看病的安排,第i个整数表示医院当天接收的第i个病人在原先挂号序列当中的序号。
如:
3
4 3 5
2
2 5

提示:例子输入输出中一共有两组数据,第一组数据表示当天有5个病人在网上挂号,按照挂号时间先后排列,这五个人的病情程度分别是2,7,4,3,4。同时,医院当天只能接收3个病人。对于第一组数据,医院当天只接收了3个病人,分别是第二个,第三个和第五个(之前5个病人按照病情严重程度排列顺序是4,3,5,2,1)。对第二组数据,严重程度最高的是第2个人,其次是第五个。

题目十:铺地板

题目描述:你是一名室内装潢工程队的配料员。你的伙伴们喜欢采用“之”字型(对角线)的顺序方式给方阵型地面铺大理石地砖,图案如下:
1 2 6 7 15
3 5 8 14 16
4 9 13 17 22
10 12 18 21 23
11 19 20 24 25
这里,1-25按方阵的对角线顺序放置。
学了 C 语言以后,你决定编写一个程序,帮助你的同伴生成这样的图形。

输入:地砖方阵的大小N(如:一共25块地砖,由于是正方形阵,则N为5)

输出:1到N*N这些数所构成的“之字形”方阵(二维数组),同一行数之间用一个空格隔开,每N个数为一行,共N行。

题目十一:整数删除若干数字后的最小数

题目描述:给定一个正整数,从这个正整数中删除若干个数字,可以得到一个新的整数。一般而言,采用不同的删除方案,可以得到不同的整数。求所有可能的删除方案产生的最小的整数。
例如:
1.对于正整数12345,删除3个数字后产生的最小整数为12;
2.对于正整数543212345,删除5个数字后产生的最小整数为1234;
3.对于正整数5432102345,删除5个数字后产生的最小整数为2345;
4.对于正整数137313731373137,删除5个数字后产生的最小整数为1131373137;
5.对于正整数132304,删除5个数字后产生的最小整数为0。

输入:输入有1行。其中包含两个数:
第一个数是一个正整数m,表示将要被删除数字的正整数。m的位数小于100。(对于数字123,其位数为3)
第二个数也是一个正整数k,表示要从第一个数中删除几个数字。两者之间用空格间隔开。
且保证输入的k小于m的位数。

输出:输出有一行。其中只有一个整数,即:删除若干数字后产生的最小整数。

提示:
1.输入的正整数m的位数可能会很长,超出一个整型变量的表示范围。
2.如果删除若干数字后产生了一个首数字为0的非零整数,则在输出时不能输出这些0字符。例如,对于正整数5432102345,删除5个数字后产生的最小整数为02345,但在输出时只能输出2345。
3.如果删除若干数字后产生的整数的值等于0,则只需要输出0。

练习10、2014年期末考试

题目一:统计要支出的药费

题目描述:刘大爷去医院看了若干次病,拿了药。根据规定,每次看病,部分药费可以报销。现在需要你帮刘大爷统计一下,报销之后,他一共花了多少钱。
报销规则:
1、药费金额小于100元全部报销
2、药费金额大于等于100元,小于200元,报销90%
3、药费金额大于等于200元,小于500元,报销70%
4、药费金额大于等于500,报销50%

输入:第一行为一个整数n,代表看病的次数;第二行为n个浮点数,代表每次药费的金额
如:
5
50.5 100.5 250.5 700.5 1000.5

输出:输出为1行,输出报销后,刘大爷总共花费的金额(保留小数点后两位)。
如:935.70

提示:
保留小数点后两位:
double a;
a = …;
printf(“%.2lf”, a);

题目二:细胞分裂

题目描述:医生在显微镜下进行某细胞实验。已知细胞分裂的速度是每秒一次,而实验需要一定量的细胞才能够进行。请你计算一下需要多少时间才能从一个细胞得到所需的细胞数量。
例如:从1个细胞开始,经过1秒钟,得到2个细胞;从1个细胞开始,经过2秒钟,得到4个细胞;从1个细胞开始,经过3秒钟,得到8个细胞,…。

输入:输入是一个整数n,代表所需细胞数

输出:输出为一行,代表需要的时间(单位秒,整数格式)

题目三:免费体检

题目描述:学校组织的一年一次的体检来了,体检有5个项目,但是每个人只能挑选3项免费,其余2项自付,因此很多同学都想找花费最高的三项来免费。现在告诉你5个项目各自的费用,你能找出来可以省下的费用最大是多少吗?

输入:输入有5个整数,表示5个项目各自的费用。(都是整数,且输入数据保证在0-100之间)
1 3 5 2 4

输出:输出一行,表示能省下的最大费用。
12

提示:3+5+4=12

题目四:配药比赛

题目描述:北医三院近期开展了针对年轻护士的技能比:配药比赛,比赛规则是:每位参赛护士,在半小时内,根据给定的处方,将散落在各处的药品进行配药,并包装完好放置到指定地点。配药份数最多的护士将获得年终休假的奖励,而配药份数最少的护士将受到春节值班的惩罚。

输入:共两行,第一行为参赛护士的人数n(0 < n <= 100 ),第二行为每位参赛护士的配药份数(均为整数)

输出:输出为一行,最多的配药份数和最少的配药份数,两数之间用一个空格分割

题目五:寻找最近的医院

题目描述:王大爷在路上摔断了腿,附近好心的路人要送他去医院,周围有好多医院,大家想知道最近的医院距离多远。

输入:第一行为两个整数,表示王大爷的位置,第二行为N(小于1000),表示附近有N家医院。
后面的N行,每行为两个整数,表示医院的坐标。(每个坐标的绝对值均为小于100的整数)。
1 2
2
4 6
1 8

输出:输出与王大爷离最近的医院的距离(保留两位小数即可)。
5.00

提示:因为(1,2)到(4,6)的距离为5,而(1,2)到(1,8)的距离为6。

题目六:最受欢迎的医生

题目描述:北医三院近期开展了最受欢迎的医生评选活动,评选规则是:请患者及其家属给自己最喜欢的医生投票(每位参加评选的医生有一个相应的编号),票数最多的医生评选为年度最受欢迎医生,奖励年终休假一个月。

输入:输入为两行,第一行为投票的总数n(0 < n <= 100),第二行为投票情况(医生编号均为整数,最大不超过15)
8
1 3 4 1 1 7 2 2

输出:输出最受欢迎的医生的编号
1

提示:
1.票数最多的医生是唯一的,即不会出现多个医生的票数都是最多的情况
2.医生的编号最大不超过15

题目七:找到第一个遗漏的实验

题目描述:小王是北京大学医学部的学生。一天,教授让小王帮忙做一系列的医学实验,实验是从1开始标号的,按照自然数顺序,最大不超过100个。每个实验会得到一张实验结果的表格,表格标号就是实验标号。一个月后,小王做完了所有的实验,但是粗心的小王同学遗失了几张实验结果的表格。小王只能把遗失的实验结果重新做一遍,这时,小王想要知道按照从1开始的自然数顺序里,第一个需要补充做的实验是哪个。

输入:第一行为一个整数n,代表未遗失的所有实验结果表格的数量
第二行为n个整数,代表未遗失实验结果表格的标号
5
2 1 5 10 11

输出:输出为1行,输出按照自然数顺序,第一个需要重做的实验。
3

提示:第二行输入类似 1 2 3 4 5这样从1开始的连续的自然数时,代表第6个实验是第一个需要重做的实验,所以应该输出6。

题目八:笨小嗨

题目描述:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小嗨就认为这是个Lucky Word,这样的单词很可能就是正确的答案。

输入:输入只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。
error

输出:输出共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”;(注意:不包含引号)
第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出0。
Lucky Word
2

提示:单词error中出现最多的字母r出现了3次,出现次数最少的字母出现了1次,3-1=2,2是质数。

题目九:排队看病

题目描述:时过境迁,对于非急诊科室的医生,特别是特需门诊坐诊的医生来说,当天挂号来看病的病人已经很少了,大多数病人都是提前多时进行了预约挂号。在这种情况下,先挂先看的办法有时不一定是最好的。假设有n个已经挂号的病人,并且根据历史病例和大数据估算医生为每位病人的诊断时间为Ti,请找出这n个人的一种顺序,使得n个病人的等待时间最小。

输入:输入为2行
第一行为n,为等待看病的人数(n<=1000)
第二行分别表示第一位病人到第n位病人的诊断时间T1,T2,…,Tn,每个数据间有一个空格
10
81 365 72 99 22 7 444 203 1024 203

输出:输出为2行
第一行为一种排队顺序,即1到n的一种排列
第二行为这种方案下的平均等待时间(精确到小数点后两位)
6 5 3 1 4 8 10 2 7 9
431.90

题目十:埃博拉来袭

题目描述:A国出现了埃博拉疫情,第1天有N人被感染。每个病人在被感染的第2天开始感染其它健康人,每个病人每天可以感染X个健康人,病人在被感染的第Y天死去(死去的当天不再感染他人,也不计入当天存活人数)。求出第K天时,该国有多少被感染且活着的病人?

输入:输入的第一行为3个整数,用空格分隔:N,第1天的感染人数,0 < N < 10;X,每人每天感染健康人的数量,0 < X < 10;Y,病人被感染到死去的天数,2 < Y < 10。
输入的第二行为1个整数K,即欲求感染人数的日期,0 < K < 10。
5 4 3
6

输出:输出为1行,输出第K天时该国被感染且活着的病人的总数。
6400

题目十一:查看菌落数目

题目描述:菌落的数量对医生来说一直是一个很重要的数据,但是细菌数量太多人工又无法计数,因此你能写个程序帮助医生完成这个任务么?
有一张n*m的菌落的显微镜照片,每个格子是0(表示当前位置无细菌)或者1(表示当前位置是细菌),请你输出这张照片中菌落的数量。
如果一个细菌,其上下左右四个方向有细菌的话,则这些相邻的细菌属于一个菌落。
例如给定如下照片:
0 0 1 0
0 1 0 1
1 1 0 0
则给出的照片一共有A,B,C三个菌落,如下:
0 0 A 0
0 B 0 C
B B 0 0

输入:输入数据第一行两个整数n,m(1<=n,m<=100),表示照片的长和宽。
接下来n行,每行都有m个用空格隔开的整数(0或者1),表示这一照片行的状态(有无细菌)。
3 5
0 0 1 0 1
0 1 0 1 1
1 1 0 0 1

输出:输出一个整数,表示该张照片中菌落数量
3

  • 26
    点赞
  • 121
    收藏
    觉得还不错? 一键收藏
  • 82
    评论
京大学计算概论b期末试 2021共有三大:数据库概论、数据结构和算法设计。数据库概论目主要涉及数据库的概念和基本操作,包括关系代数、数据库设计范式等内容,要求学生掌握数据库的基本原理和操作方法。数据结构目要求学生对常见的数据结构如链表、栈、队列等进行分析和比较,同时要求学生能够熟练运用这些数据结构进行问求解。算法设计目考察学生对算法设计思想和方法的理解和应用,包括递归、贪心算法、动态规划等内容。 数据库概论目要求学生通过给定的关系代数表达式,完成对应的关系运算,设计数据库范式满足给定的要求。数据结构目要求学生分析和比较链表和栈的优缺点,并给出相应的场景应用。同时要求学生设计一个队列,实现元素的入队和出队操作。算法设计目要求学生设计一个递归算法,实现对给定数组的二分查找,同时分析其时间复杂度和空间复杂度。另外,要求学生设计一个贪心算法,实现对给定集合的最优子集选择,使得子集的元素之和最大。 综上所述,京大学计算概论b期末试 2021内容涵盖数据库概论、数据结构和算法设计三个主要领域,考察学生对计算概论的基本原理和方法的理解和应用能力,能够帮助学生全面检验自己对计算概论课程的掌握程度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 82
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值