程序设计大赛试题及答案

  • 格式:doc
  • 大小:65.50 KB
  • 文档页数:9

下载文档原格式

  / 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

试题

1、数学黑洞(程序文件名maths.c/maths.cpp)

【问题描述】

任给一个4位正整数,其各位数位上的数字不全相同,将数字重新组合成一个最大的数与最小的数相减,重复这个过程,最多7步,必得6174。对任给的4位正整数(各位数位上的数字不全相同),编程输出掉进黑洞的步数。【输入】

一行,一个4位正整数n(1000< n<9999)

【输出】

掉进黑洞的步数

输入

1234

输出

3

2、进制转换(程序文件名conver.c/conver.cpp)

【问题描述】

任给一个十进制整数n,及正整数m(m<=16且m≠10), 将n转换成m进制并输出。

【输入】

一行,两个整数n,m(0 ≤ n ≤ 500000,2 ≤ m ≤ 16,且m≠10),中间用一个空格隔开,其中n 表示十进制数。

【输出】

转换后的数

【输入输出样例】

输入

255 8

输出

377

3、分数线划定(程序文件名score.c/score.cpp)

【问题描述】

公务员选拔工作正在 A 市如火如荼的进行。为了选拔优秀人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名公务员,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。【输入】

第一行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中间用一个空格隔开,其中n 表示报名参加笔试的选手总数,m 表示计划录取的人数。输入数据保证m*150%向下取整后小于等于n。

第二行到第 n+1 行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k(1000 ≤ k ≤ 9999)和该选手的笔试成绩s(1 ≤ s ≤ 100)。数据保证选手的报名号各不相同。

【输出】

第一行,有两个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。

从第二行开始,每行包含两个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和笔试成绩,按照笔试成绩从高到低输出,如果成绩相同,则按报名号由小到大的顺序输出。

【输入输出样例】

输入

6 3

1000 90

3239 88

2390 95

7231 84

1005 95

1001 88

88 5

1005 95

2390 95

1000 90

1001 88

3239 88

【样例说明】

m*150% = 3*150% = 4.5,向下取整后为4。保证4 个人进入面试的分数线为88,但因为88有重分,所以所有成绩大于等于88 的选手都可以进入面试,故最终有5 个人进入面试。

4、生日礼物(gift.c/gift.cpp)

【问题描述】

小新今天过生日,他妈妈带他到一家购物中心,他妈妈告诉他他今天可以在这家商店选购3件礼物,但这3件礼物必须满足条件:后面礼物的价格不得高于前面礼物的价格,如有5件商品价格分别是12,11,8,9,10,则小新挑选礼物方案只能是(12,11,8)、(12,11,9)、(12,11,10)这三种方案中的一种,小新对挑选礼物的方案很感兴趣,请编程计算挑选礼物的方案数。

【输入】

第一行,一个整数n(n≤1000),表示待选商品的总数。第二行n个整数,用空格隔开,分别表示每件商品的价格(每件商品的价格≤10000)。

【输出】

共一行,包含1 个整数,表示挑选礼物的方案数。

【输入输出样例】

输入

5

12 11 8 9 10

输出

3

5、资金预算(budget.c/budget.cpp)

【问题描述】

小新的亲戚开了一家建材批发部,近来由于价格不稳定,故需要制定按月执行的仓储计划,该批发部有n个供货月份,每个月仓储预算、商品价格预算、客户需求量分别为Pi,Si,Di,,每月客户需求必须得到保证。当然,也可以在价格适当时进行囤货,即用仓库所储备的商品供货。若存货不足,就要购买商品供货,如某月要购货,则该月要加上一笔购货预算资金Ri。例如,有2个预算月份,P1,S1,D1,R1分别为0,10,100,10;P2,S2,D2,R2分别为0,100,100,10;则方案1:第一个月买够D1的货,第二个月买够D2的货,预算等于

(D1×S1+R1)+(D2×S2+R2)=(100×10+10)+(100×100+10)=11020。

方案2:第一个月买够2个月的商品,第二个月不用买货,可用囤积的商品供货,但需要支付第一个月的仓储费,预算等于

((D1+D2)×S1+R1)+(P1×D2)=((100+100)×10)+(0×100)=2010。

显然方案2优于方案1。人工进行这样的预算费时费力,请你编程帮小新亲戚安排预算从而实现利润的最大化。【输入】

输入文件第一行是整数n(1≤ n ≤20),表示有n个月份;接着有n行,每行4个数据,分别表示 Pi,Si,Di,Ri,即仓储费用,商品价格预算,客户需求量及购货预算。其中1≤ i ≤n,0≤Pi,Si,Ri≤100000; ,∑Di≤500。【输出】

仅1行,数据是最小总预算。

样例1:

【输入1】

2

0 10 100 10

0 100 100 10

【输出1】

2010