一、实操题
1、最大跨度
描述
给定一个长度为n的非负整数序列,请计算序列的最大跨度值(最大跨度值=最大值减去最小值)。
输入
输入一共两行,第1行为序列的个数n(1≤n≤1000),第2行为序列的n个不超过1000的非负整数,整数之间以一个空格分隔。
输出
输出一行,表示序列的最大跨度值。
参考答案:根据题目要求,我们需要计算给定序列的最大跨度值。最大跨度值等于序列中的最大值减去最小值。首先,我们需要读取输入的序列。根据题目,输入共有两行,第一行为序列的个数n,第二行为序列的n个不超过1000的非负整数,整数之间以一个空格分隔。我们可以使用空格作为分隔符,将第二行的整数读取到一个数组中。接下来,我们需要找到数组中的最大值和最小值。可以使用两个变量来记录最大值和最小值,遍历数组中的每个元素,更新最大值和最小值。最后,将最大值和最小值相减,得到最大跨度值,并输出结果。
2、银行利息
描述
农夫约翰在去年赚了一大笔钱!他想要把这些钱用于投资,并对自己能得到多少收益感到好奇。已知投资的复合年利率为R(0到20之间的整数)。约翰现有总值为M的钱(100到1,000,000之间的整数)。他清楚地知道自己要投资Y年(范围0到400)。请帮助他计算最终他会有多少钱,并输出它的整数部分。数据保证输出结果在32位有符号整数范围内。
输入
一行包含三个整数R,M,Y,相邻两个整数之间用单个空格隔开。
输出
一个整数,即约翰最终拥有多少钱(整数部分)。
参考答案:根据题目描述,我们需要计算农夫约翰投资M元,在复合年利率R下,经过Y年后,最终会有多少钱。这个问题可以通过复利公式来解决,复利公式为:A = P * (1 + r)^t其中,A表示最终金额,P表示本金,r表示年利率,t表示投资年数。由于题目中的年利率是复合年利率,所以我们需要将复合年利率转化为单利年利率。复合年利率R转化为单利年利率的公式为:r = (1 + R)^(1/Y) - 1将公式带入复利公式,得到:A = M * (1 + (1 + R)^(1/Y) - 1)^Y最后,我们需要将计算得到的最终金额取整数部分,因为题目要求输出整数。
3、病人排队
描述
病人登记看病,编写一个程序,将登记的病人按照以下原则排出看病的先后顺序:
1.老年人(年龄>=60岁)比非老年人优先看病。
2.老年人按年龄从大到小的顺序看病,年龄相同的按登记的先后顺序排序。
3.非老年人按登记的先后顺序看病。
输入
第1行,输入一个小于100的正整数,表示病人的个数;后面按照病人登记的先后顺序,每行输入一个病人的信息,包括:一个长度小于10的字符串表示病人的ID(每个病人的ID各不相同且只含数字和字母),一个整数表示病人的年龄,中间用单个空格隔开。
输出
按排好的看病顺序输出病人的ID,每行一个。
参考答案:br />根据题目要求,我们需要编写一个程序,将登记的病人按照年龄和登记顺序排出看病的先后顺序。具体步骤如下:1. 创建一个空列表,用于存储病人的信息。2. 读取输入,按照病人登记的先后顺序,将每个病人的信息(包括ID和年龄)添加到列表中。3. 遍历列表,按照题目要求的排序原则进行排序。4. 输出排序后的病人ID。
4、随机数
描述
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。
输入
有2行,第1行为1个正整数,表示所生成的随机数的个数;N;第2行有N个用空格隔开的正整数,为所产生的随机数。
输出
也是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
参考答案:br />根据题目描述,我们需要对输入的随机数进行去重和排序操作。具体步骤如下:1. 读取第一行输入,获取随机数的个数N。2. 读取第二行输入,获取N个随机数。3. 使用一个集合(set)来存储不重复的随机数,集合会自动去重。4. 将集合转换为列表,并使用内建函数sort()进行排序。5. 输出不重复的随机数的个数和排序后的列表。
5、求n的最小值
描述
已知k,求解1+2+3+…+n>=k,求解n的最小值。(1<=k<=1500000000000000000)
输入
一个正整数k。
输出
一个整数n。
参考答案:对于给定的k,要求解1+2+3+…+n≥k1 + 2 + 3 + \ldots + n \geq k1+2+3+…+n≥k,即求n的最小值。首先,我们知道等差数列的前n项和公式为:Sn=n(n+1)2S_n = \fracn(n+1)2Sn=2n(n+1)将Sn≥kS_n \geq kSn≥k代入公式,得到:n(n+1)2≥kn(n + 1) \frac22 \geq kn(n+1)22≥k整理得:n2+n−2k≥0n^2 + n - 2k \geq 0n2+n−2k≥0进一步整理为:n2+n−2k=0n^2 + n - 2k = 0n2+n−2k=0由于n为整数,我们需要找到满足上述不等式的最小的n值。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!