小学计算机奥林匹克试题,[转载]合肥市第三十届青少年信息学奥林匹克竞赛(小学组)试题...

“讯飞杯”合肥市第三十届青少年信息学奥林匹克竞赛(小学组)试题

2013年11月23日

14:00-16:30

(请选手务必仔细阅读本页内容)

中文题目名称

大写数字

奇妙变换

密码翻译

趣味琴盘

源程序名

bignum

magic

password

piano

输入文件名

bignum.in

magic.in

password.in

piano.in

输出文件名

bignum.out

magic.out

password.out

piano.out

满分

100

100

100

100

测试点数目

10

10

10

10

是否有部分分

内存限制

128M

128M

128M

128M

每个测试点时限

1秒

1秒

1秒

1秒

一、题目概况

二、注意事项

1.

考试时间为150分钟。

2.

务必看清题目,严格按照所要求的格式输入、输出。

3.

在调试程序时请先使用题目中的示例数据,然后再自行设计多组测试数据进行调试。

4.

每题一般有10个测试点,测试有严格的时间限制,请尽可能优化算法。

5.

命名规则:

(1)每题都规定了该题的英文名称。

(2)程序文件和数据文件的主文件名都是该题的英文名字。

(3)程序文件扩展名采用语言环境的默认扩展名。

(4)数据文件都是文本文件,输入和输出文件的扩展名分别是.in和.out。

6.

程序应从输入文件读取数据,并严格地按照规定的输出格式将结果输出到输出文件中。输入数据文件和输出数据文件都与程序在同一个目录中,由于程序所在目录是不确定的,因此不允许在文件名中含有盘符信息和任何形式的路径信息。

7.

选手在竞赛结束时应在D盘的根目录下建立以准考证号命名的文件夹,并将所完成各题的源程序文件和可执行文件拷贝到该文件夹中。

第一题大写数字

(bignum.pas/c/cpp)

【问题描述】

牛牛同学的妈妈在一家银行上班,每天都要填写大量交易的单据。在银行的单据上,除了要填写阿拉伯数字外,还要填写对应的中文大写数字。例如:当我们要到某银行柜台存1000元时,除了要写1000这个阿拉伯数字外,还要在大写数字栏中写“壹仟元整”。

已知标准大写数字写法如下:零、壹、贰、参、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿。请你帮牛牛妈妈写一个程序将数字转换为中文大写数字。由于测试系统中的编译器不直持汉字,所以0-9数字的中文大写还是用0-9代表,“拾、佰、仟、万、亿”分别用它们的拼音(shi,bai,qian,wan,yi)代表。

【输入格式】

一个整数数值n

【输出格式】

对应的中文大写文字字串

【样例输入1】

0

【样例输出1】

0

【样例输入2】

202

【样例输出2】

2bai02

【数据范围】

对于30%的数据,0≤n≤10;

对于50%的数据,0≤n≤100;

对于100%的数据,0≤n≤100000

第二题奇妙变换

(magic.pas/c/cpp)

【问题描述】

为了奖励牛牛同学帮妈妈解决了大写中文数字的问题,牛牛妈妈特地抽出一个周末的时间带着牛牛来到梦幻儿童乐园游玩。

在游乐园,牛牛看到了一个非常有意思的游戏:游戏一开始,电脑屏幕上只有一个序列“A”,而后的每一次变化都把序列中的“A”变成“AB”,“B”变成“A”。游戏一直继续……,最后屏幕上得到了序列“ABAABABAABAABABAABA……”。当然更有意思的是,电脑会提出Q个询问,每次询问:在第m个字符和第n个字符之间有多少个“A”(包括第m、n个字符在内)。

你能帮牛牛解决这个问题吗?

【输入格式】

第一行为一个整数Q,后面有Q行,每行两个数用空格隔开的整数m,n。

【输出格式】

共Q行,每行一个回答。

【样例输入】

1

2

8

【样例输出】

4

【数据范围】

1≤Q≤5000

1≤m≤n≤263

保证每次询问时,所询问的区间已经生成。

第三题密码翻译

(password.pas/c/cpp)

【问题描述】

密码学是一门非常深奥、实用的学问。在我们的日常生活中处处可见加密解密的影子:电视中、QQ上、手机中……。为了在信息传递过程中防止被截获,往往需要对传输的文本用一定的方式加密,简单的加密算法虽然不足以完全避免信息被破译,但仍然能防止信息被轻易的识别。

我们给出一种最简的的加密方法:

对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,其他字符不变,则可得到一个简单的加密字符串。

【输入格式】

第一行是字符串的数目n;

其余n行每行一个字符串,每个字符串长度小于80个字符。

【输出格式】

输出每行字符串的加密字符串。

【样例输入】

1

Hello!

How are you!

【样例输出】

Ifmmp!

Ipx bsf zpv!

第四题趣味琴盘

(piano.pas/c/cpp)

【问题描述】

有一个非常好玩的钢琴,它拥有一个奇特的琴盘,琴盘中的键可以无限增加,从左到右依次编号为1,2,3,4,……。

每一键只有两种可能的状态,弹起或者按下。如果按一下某一个键盘,那么这个键盘的状态将发生改变:如果原来是按下,将变成弹起;如果原来是弹起,将变成按下。

在刚开始的时候,所有的键盘都是按下的。

牛牛每次可以进行如下的操作:

指定两个数:a,t(a为实数,t为正整数)。将编号为[a],[2*a],[3*a],……,[t*a]的键盘各按一次。其中[k]表示实数k的整数部分,例如[1.554555]为1。

在牛牛进行了n次操作后,他突然发现,这个时候只有一个键盘是弹起的,牛牛很想知道这个键盘的编号,可是这键盘离牛牛太远了,他看不清编号是多少。

幸好,牛牛还记得之前的n次操作。于是牛牛找到了你,你能帮他计算出这个弹起的键盘的编号吗?

【输入格式】

第一行一个正整数n,表示n次操作。

接下来有n行,每行两个数:ai,ti。其中ai是实数,小数点后一定有6位,ti是正整数。

【输出格式】

仅一个正整数,那个弹起的键盘的编号。

【样例输入】

3

1.618034

13

2.618034 7

1.000000

21

【样例输出】

20

【数据范围】

记T=t1+t2+t3+……+tn。

对于30%的数据,满足T<=1000

对于80%的数据,满足T<=200000

对于100%的数据,满足T<=2000000

对于100%的数据,满足n<=5000,1<=ai<1000,1<=ti<=T

数据保证,在经过n次操作后,有且只有一个键盘是弹起的,不必判错。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值