算法设计综合实训题目
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法设计综合实训题目
0.逆序数字(借助栈)
编写一个函数,接收一个4位整数值,返回这个数中数字逆序后的结果值。例如,给定数7631,函数返回1367.
输入:
第一行一个正整数T(T<=10),表示有T组测试数据; 以下T 行,每行一个非负的整数N。
输出:
共T行,对于每组输入数据输出一行,即数字逆序后的结果值。
样本输入:
3
7631
1018
5158
样本输出:
1367
8101
8515
1.人见人爱A+B
这个题目的A和B不是简单的整数,而是两个时间,A和B 都是由3个整数组成,分别表示时分秒,比如,假设A为34 45 56,就表示A所表示的时间是34小时 45分钟 56秒。
输入:
输入数据有多行组成,首先是一个整数N,表示测试实例的个数,然后是N行数据,每行有6个整数AH,AM,AS,BH,BM,BS,分别表示时间A和B所对应的时分秒。题目保证所有的数据合法。
输出:
对于每个测试实例,输出A+B,每个输出结果也是由时分秒3部分组成,同时也要满足时间的规则(即:分和秒的取值范围在0-59),每个输出占一行,并且所有的部分都可以用32位整数表示。
样本输入:
2
1 2 3 4 5 6
34 45 56 12 23 34
5 7 9
47 9 30
2.敲七
【问题描述】
输出7和7的倍数,还有包含7的数字例如(17,27,37...70,71,72,73...)
【要求】
【数据输入】一个整数N。(N不大于30000)
【数据输出】从小到大排列的不大于N的与7有关的数字,每行一个。
【样例输入】
20
【样例输出】
7
14
17
3.统计同成绩学生人数问题
【问题描述】
读入N名学生的成绩,将获得某一给定分数的学生人数输出。
【要求】
【数据输入】测试输入包含若干测试用例,每个测试用例的格式为
第1行:N
第2行:N名学生的成绩,相邻两数字用一个空格间隔。
第3行:给定分数
当读到N=0时输入结束。其中N不超过1000,成绩分数为(包含)0到100之间的一个整数。
【数据输出】对每个测试用例,将获得给定分数的学生人数输出。
【样例输出】
3
80 60 90
60
2
85 66
5
60 75 90 55 75
75
1
2
4.高斯日记
大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210。后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?
高斯出生于:1777年4月30日。
在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。
高斯获得博士学位的那天日记上标着:8113
请你算出高斯获得博士学位的年月日。
5.牛的繁殖问题
有位科学家曾出了这样一道数学题:有一头母牛,它每年年初要生一头小母牛;每头小母牛从第四个年头起,每年年初也要生一头小母牛。按此规律,若无牛死亡,第20个年头上共有多少头母牛。
6.最少钱币数问题
【问题描述】
这是一个古老而又经典的问题。用给定的几种钱币凑成某个钱数,一般而言有多种方式。例如:给定了6种钱币面值为2、5、10、20、50、100,用来凑 15元,可以用5个2元、1个5元,或者3个5元,或者1个5元、1个10元,等等。显然,最少需要2个钱币才能凑成15元。
你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。
【要求】(代码需加注释)
【数据输入】输入可以有多个测试用例。每个测试用例的第一行是待凑的钱数值M(1 <= M <= 2000,整数),接着的一行中,第一个整数K(1 <= K <= 10)表示币种个数,随后是K个互不相同的钱币面值Ki(1 <= Ki <= 1000)。输入M=0时结束。
【数据输出】每个测试用例输出一行,即凑成钱数值M最少需要的钱币个数。如果凑钱失败,输出“Impossible”。你可以假设,每种待凑钱币的数量是无限多的。
【样例输入】
15
6 2 5 10 20 50 100
1
1 2
【样例输出】
2
Impossible
7. 运动会分数统计
【任务描述】参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的得分分别为:7、5、3、2、1,前三名的得分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)
【功能要求】
1)可以输入各个项目的前三名或前五名的成绩。
2)能统计各学校总分。
3)可以按学校编号或名称、学校总分、男女团体总分排序输出。
4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
5)数据存入文件并能随时查询。
6)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称。
【输出形式】有合理的提示,各学校分数为整型。