实用算法配套练习基础题doc.docx

上传人:b****5 文档编号:2797468 上传时间:2022-11-15 格式:DOCX 页数:20 大小:26.81KB
下载 相关 举报
实用算法配套练习基础题doc.docx_第1页
第1页 / 共20页
实用算法配套练习基础题doc.docx_第2页
第2页 / 共20页
实用算法配套练习基础题doc.docx_第3页
第3页 / 共20页
实用算法配套练习基础题doc.docx_第4页
第4页 / 共20页
实用算法配套练习基础题doc.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

实用算法配套练习基础题doc.docx

《实用算法配套练习基础题doc.docx》由会员分享,可在线阅读,更多相关《实用算法配套练习基础题doc.docx(20页珍藏版)》请在冰豆网上搜索。

实用算法配套练习基础题doc.docx

实用算法配套练习基础题doc

实用算法配套练习

第一章基础题

1、陶陶摘苹果

【问题描述】

陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。

苹果成熟的时候,陶陶就会跑去摘

苹果。

陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。

现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她

能够摘到的苹果的数目。

假设她碰到苹果,苹果就会掉下来。

【输入文件】

输入文件apple.in。

第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分

别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。

第二行只包括一个100到120之

间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。

【输出文件】

输出文件apple.out包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。

【样例输入】

100200150140129134167198200111

110

【样例输出】

5

2、不高兴的津津(unhappy.pas)

【问题描述】

津津上初中了。

妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的

各科复习班。

另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。

但是津津如果一天上课超过八个小时就会

不高兴,而且上得越久就会越不高兴。

假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二

天。

请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。

【输入文件】

输入文件unhappy.in包括七行数据,分别表示周一到周日的日程安排。

每行包括两个小于10的非负

整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。

【输出文件】

输出文件unhappy.out包括一行,这一行只包含一个数字。

如果不会不高兴则输出0,如果会则输出

最不高兴的是周几(用1,2,3,4,5,6,7分别表示周一,周二,周三,周四,周五,周六,周日)。

如果有

两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。

【样例输入】

53

62

72

53

54

04

06

【样例输出】

3

2

3、津津的储蓄计划(save.pas)

【问题描述】

津津的零花钱一直都是自己管理。

每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并

且总能做到实际花销和预算的相同。

为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年__________末她会加上20%

还给津津。

因此津津制定了一个储蓄计划:

每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个

月的月末手中还会有多于100元或恰好100元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。

例如11月初津津手中还有83元,妈妈给了津津300元。

津津预计11月的花销是180元,那么她就

会在妈妈那里存200元,自己留下183元。

到了11月月末,津津手中会剩下3元钱。

津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。

有可能在某个月的月

初,津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。

如果出现这种情况,津津将不得不在

这个月省吃俭用,压缩预算。

现在请你根据2004年1月到12月每个月津津的预算,判断会不会出现这种情况。

如果不会,计算到

2004年年末,妈妈将津津平常存的钱加上20%还给津津之后,津津手中会有多少钱。

【输入文件】

输入文件save.in包括12行数据,每行包含一个小于350的非负整数,分别表示1月到12月津津的

预算。

【输出文件】

输出文件save.out包括一行,这一行只包含一个整数。

如果储蓄计划实施过程中出现某个月钱不够用

的情况,输出-X,X表示出现这种情况的第一个月;否则输出到2004年年末津津手中会有多少钱。

【样例输入1】

290

230

280

200

300

170

340

50

90

80

200

60

【样例输出1】

-7

【样例输入2】

290

230

280

200

300

170

330

50

3

90

80

200

60

【样例输出2】

1580

4、校门外的树

【问题描述】

某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。

我们可以把马路看成

一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,

都种有一棵树。

由于马路上有一些区域要用来建地铁。

这些区域用它们在数轴上的起始点和终止点表示。

已知任一区

域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。

现在要把这些区域中的树(包括区域

端点处的两棵树)移走。

你的任务是计算将这些树都移走后,马路上还有多少棵树。

【输入文件】

输入文件tree.in的第一行有两个整数L(1<=L<=10000)和M(1<=M<=100),L代表马路的长

度,M代表区域的数目,L和M之间用一个空格隔开。

接下来的M行每行包含两个不同的整数,用一个空

格隔开,表示一个区域的起始点和终止点的坐标。

【输出文件】

输出文件tree.out包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。

【样例输入】

5003

150300

100200

470471

【样例输出】

298

5、灯的开关状态(Switch.pas)

【问题描述】

有N个灯放在一排,从1到N依次顺序编号。

有N个人也从1到N依次编号。

1号将灯全部关闭,2

将凡是2的倍数的灯打开;3号将凡是3的倍数的灯作相反处理(该灯如为打开的,则将它关闭;如关闭

的,则将它打开)。

以后的人都和3号一样,将凡是自己编号倍数的灯作相反处理。

编程实现:

第N个人操作后,按顺序输出灯的状态。

(1-表示灯打开,0-表示灯关闭)

【输入格式】

输入:

n,灯的个数

【输出格式】

输出:

灯的状态,01序列,中间无空格。

【输入样例】Switch.in

2

【输出样例】Switch.out

01

4

6、谁拿了最多奖学金

问题描述】

某校的惯例是在每学期的期末考试之后发放奖学金。

发放的奖学金共有五种,获取的条件各自不同:

1)院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上

论文的学生均可获得;

2)五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)

的学生均可获得;

3)成绩优秀奖,每人2000元,期末平均成绩高于90分(>90)的学生均可获得;

4)西部奖学金,每人1000元,期末平均成绩高于85分(>85)的西部省份学生均可获得;

5)班级贡献奖,每人850元,班级评议成绩高于80分(>80)的学生干部均可获得;

只要符合条件就可以得奖,每项奖学金的获奖人数没有限制,每名学生也可以同时获得多项奖学金。

例如姚林的期末平均成绩是87分,班级评议成绩82分,同时他还是一位学生干部,那么他可以同时获得

五四奖学金和班级贡献奖,奖金总数是4850元。

现在给出若干学生的相关数据,请计算哪些同学获得的奖金总数最高(假设总有同学能满足获得奖学

金的条件)。

【输入文件】

输入文件scholar.in的第一行是一个整数N(1<=N<=100),表示学生的总数。

接下来的N行每行是

一位学生的数据,从左向右依次是姓名,期末平均成绩,班级评议成绩,是否是学生干部,是否是西部省

份学生,以及发表的论文数。

姓名是由大小写英文字母组成的长度不超过20的字符串(不含空格);期末

平均成绩和班级评议成绩都是0到100之间的整数(包括0和100);是否是学生干部和是否是西部省份

学生分别用一个字符表示,Y表示是,N表示不是;发表的论文数是0到10的整数(包括0和10)。

每两

个相邻数据项之间用一个空格分隔。

【输出文件】

输出文件scholar.out包括三行,第一行是获得最多奖金的学生的姓名,第二行是这名学生获得的奖金

总数。

如果有两位或两位以上的学生获得的奖金最多,输出他们之中在输入文件中出现最早的学生的姓名。

第三行是这N个学生获得的奖学金的总数。

【样例输入】

4

YaoLin8782YN0

ChenRuiyi8878NY1

LiXin9288NN0

ZhangQin8387YN1

【样例输出】

ChenRuiyi

9000

28700

7、阶乘和

【问题描述】

已知正整数N(N<=100),设S=1!

+2!

+3!

+...N!

其中"!

"表示阶乘,即N!

=1*2*3*……*(N-1)*N,

如:

3!

=1*2*3=6。

请编程实现:

输入正整数N,输出计算结果S的值。

【输入样例】sum.in

4

【输出样例】sum.out

33

5

8、放球(Ball.pas)

【问题描述】

把m个球放入编号为0,1,2,…,k-1的k个盒中(m<2k)要求第i个盒内必须放2i只球。

如果无法

满足这一条件,就一个不放,求出放球的具体方案。

【输入样例】Ball.in

5

【输出样例】Ball.out

0:

1

1:

0

2:

4

9、角谷猜想(Tran.pas)

【问题描述】

在数学上,有一个称为角谷猜想(最早由日本数学家角谷静夫提出)的经典题,其内容是:

“对任意的正整

数n,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。

经过如此有限次运算后,总可以得到正整

数值1”。

请你编一个程序,根据输入的正整数n,输出以上运算过程。

【输入格式】

输入数据仅一行包含一个正整数n(2≤n≤100)。

【输出格式】

一行输出一次运算的算式,算式中除了运算符号、等号及数字以外不包含其它任何字

符。

【输入样例】train.in

3

【输出样例】train.out

3*3+1=10

10/2=5

5*3+1=16

16/2=8

8/2=4

4/2=2

2/2=1

10、求级数和(SERIES.PAS)

【问题描述】

我们让计算机来做一道数学题:

计算S=1/1!

+1/2!

+1/3!

+...+1/N!

(其中N!

=1*2*3*...*N)

【输入格式】

输入整数N(1≤N≤1000)。

【输出格式】

输出S,四舍五入到15位小数。

【输入样例】

3

【输出样例】

S=1.666666666666667

6

11、密码破译(PASSWORD.PAS)

【问题描述】

某组织欲破获一个外星人的密码,密码由一定长度的字串组成。

此组织拥有一些破译此密码的长度不

同的钥匙,若两个钥匙的长度之和恰好为此密码的长度,则此密码被成功破译。

现在就请你编程找出能破

译此密码的两个钥匙。

【输入格式】(PASSWORD.IN):

输入文件第一行为钥匙的个数N(1≤N≤5000)

输入文件第二行为密码的长度

以下N行为每个钥匙的长度

【输出格式】(PASSWORD.OUT):

若无法找到破译此密码的钥匙,则输出文件仅1行0。

若找到两把破译的钥匙,则输出文件有两行,分别为两把钥匙的编号。

若有多种破译方案,则只输出一种即可。

【输入样例】PASSWORD.IN

10

80

27

9

4

73

23

68

12

64

92

24

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1