(小学组 PASCAL 语言)
第一届宁波――绍兴少儿信息学联赛
暨第28届宁波市中小学生计算机程序设计竞赛
第 11 届绍兴市少儿信息学竞赛
复赛试题
(2013 年 4 月 13 日下午 1:30-4:00)
一、题目一览
中文题目名称 哈夫曼编码 立方和 智力大奖赛 求素数 prime 英文题目名称 coding cubsum energy energy.in 输入文件名 coding.in cubsum.in prime.in prime.out 输出文件名 coding.out cubsum.out energy.out 每个测试点时限 1 秒 1 秒 1 秒 1 秒 10 测试点数目 10 10 10 10 每个测试点分值 10 10 10
二、比赛目录结构示例 选手比赛时,需在本机为每题建立对应的题目目录,目录名称
选手根据题目要求,将自己提交的源程序,放在该题的题目目录下。 每位选手把自己提交的源程序连同要求的目录结构,存入 D 盘根目录中。(只递交
源程序,测试时以源程序为准)
例如:假设试卷中有 cashier、dune、manhattan 三题,选手 sx1001 使用 Pascal
答题,其最终提交的文件为 cashier.pas、dune.pas、manhattan.pas,则该选手提交的
目录结构如下所示:
|---sx1001/
|---cashier/
|---cashier.pas
|---dune/
|---dune.pas
与题目英文名称相同。
主办:宁波市科协、教育局
绍兴市科协、教育局
承办:宁波市青少年科技中心、青少年科技辅导员协会
绍兴科技馆、市教育教学研究院、市互联网协会
- 1 -
第一届宁波――绍兴少儿信息学联赛
(小学组 PASCAL 语言)
|---manhattan/ |---manhattan.pas
三、特别提醒 1、务必看清题目,严格按照试题所要求的格式输
入、输出。
2、比赛开始前应先检查本机能否正常使用,如有问题可向监考老师提出。比赛结
束后应及时离开机房,但注意不要关机。
1、哈夫曼编码(文件名:coding.pas)
问题描述:
哈夫曼编码是一种编码方式,是可变字长编码的一种,由 Huffman 于 1952 年提出。 该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编 码,一般就叫 Huffman 编码。简单地来说,就是出现概率高的字符使用较短的编码,反
之出现概率低的则使用较长的编码,这便使编码之后的字符串的平均期望长度降低,从
而达到无损压缩数据的目的。
现在请你模拟这样的原则对给定的一个字符串进行字母统计。
输入文件:
输入文件 coding.in,只有一行,是一个字符串,由小写英文字母组成,长度不超过
255 个字符。
输出文件:
输出文件 coding.out,有若干行,每行有两部分组成:一个字母和该字母出现的频 率,中间用一个空格分隔,并按频率高低排列,频率相同时则按字母的 ASC 码的先后 顺序排列。
输入样例:
soon
输出样例:
o 2 n 1 s 1
第一届宁波――绍兴少儿信息学联赛
(小学组 PASCAL 语言)
2、立方和(文件名:cubsum.pas)
问题描述: 现给出一个三位数,先对这个三位数的各位数字的立方求和,然后再对求
出的和中
的各位数字的立方求和,如此一直继续下去,判断最后能否得到一个不再变化的固定值。 如能得到一个固定值,就求出这个固定值;如果不能,则输出提示信息“error”。另外 请注意,在求解过程中,若某一次求和过程中得到的值超过三位数,则取该数的低三位 继续往下运算……
例如,对于三位数 111,则第一次计算应是 1×1×1+1×1×1+1×1×1=3,第二次
计算应是 0×0×0+0×0×0+3×3×3=27,第三次计算应是 0×0×0+2×2×2+7×7× 7=351,第四次计算应是 3×3×3+5×5×5+1×1×1=153,第五次计算应是 1×1×1+5
×5×5+3×3×3=153,与第四次计算的结果相同,这时可不再计算,输出固定值 153。
亲爱的同学,请你也来计算一下。
输入文件:
输入文件 cubsum.in,只有一行,是一个三位数。
输出文件:
输出文件 cubsum.out,也只有一行,如能得到一个固定值,则输出这个固定值;如
不能,则输出一个提示信息“error”。
输入样例 1:
111
输出样例 1:
153
输入样例 2:
102
输出样例 2:
error
第一届宁波――绍兴少儿信息学联赛
(小学组 PASCAL 语言)
3、智力大奖赛(文件名:energy.pas)
问题描述: 一年一度的校园智力大奖赛是小明最喜爱的活动,今年的比赛中学校新
设了一个智
取能量棒的项目,小明很想参加。这个项目的比赛规则是这样的:考官在一个仪器上输 入一个数,仪器屏幕上就会出现一个由许多能量棒组成的大三角形(一个大三角形有若 干个小三角形组成),已知每根能量棒的长度都是一样的,每个小三角形由三根能量棒 组成,若谁能快速答出其中小三角形的个数和能量棒的总个数,则谁就赢得了比赛,这
些能量棒作为奖励也就属于他了。现在小明想邀请你和他一起参加这项比赛。 输入文件:
输入文件 energy.in,只有一行,有一个整数 N,表示大三角形的层数(N≦45000)。
输出文件:
输出文件 energy.out,有二行。 第一行只有一个数,表示小三角形的个数; 第二行也只有一个数,表示能量棒的个数。
输入样例:
8
输出样例:
64 108
数据范围:
在 40%的数据中,1≦N≦150 在 70%的数据中,1≦N≦30000 在 100%的数据中,1≦N≦45000
第一届宁波――绍兴少儿信息学联赛
(小学组 PASCAL 语言)
4、求素数(文件名:prime.pas)
问题描述:
现给你 N 个 0~9 的数字并排成了一列,同时还给出了一个取数长度 L。规定先从
第 1 个数字开始从左往右连续取 L 个数字,拼成一个长度为 L 位(最高位为 0 的 L-1 位
数除外)的数,然后从第 2 个数字开始从左往右连续取 L 个数字……,这样,最后最多 可以得到 N-L+1 个 L 位数。现在请你将这些 L 位数中的素数按从小到大的顺序输出(如
果产生重复,只需输出一个)。
输入文件:
输入文件 prime.in,共有二行。
第一行为 N 和 L,中间用空格隔开。(1≦N≦100,1≦L≦7)
第二行为 N 个 0~9 的数字,中间用空格隔开。
输出文件:
输出文件 prime.out,只有一行,含全部满足条件的素数,中间用逗号隔开。
样例输入:
10 3
8 9 1 0 2 3 5 4 7 6
样例输出:
547
因篇幅问题不能全部显示,请点此查看更多更全内容