青少年信息学奥林匹克初级竞赛辅导练习题

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

第一题(p236)

问题描述:将键盘输入的字符串中所有的十进制数找出来,并求它们的和。输入:APPLE 25, PEAR 125

屏幕输出:25+125=150

输入:THIS IS A BOOK

屏幕输出:0

第二题(p236)

问题描述:求n!(n!=l×2×3×4×5×…×n)的精确值(n≤25 )。

输入:n=11

屏幕输出:n!=39916800

第三题(p236)

问题描述;当输入正整数N时(0

输入:N=3

屏幕输出:

6 3 1

0 5 2

00 4

输入:N=5

屏幕输出:

15 10 6 3 1

0 14 9 5 2

0 0 13 8 4

0 0 0 12 7

0 0 0 0 11

1.编-程序,由计算机随机产生十道10以内整数四则运算题,运算符由计算机随机产生,每做对-题加10分,并输出“GOOD"。做完后,输出对几题、错几题以及总分是多少。(p233) 说明:变量A, B为运算数,变量C为运算符代码。

2.输入一个正整数X,然后与它的倒序排列的数相加,求其结果。(p234) 例如:正整数238,其倒序排列的数为832,其结果为238+832=1070。

P28练习

[例2]报数游戏(NOIP-TJ-2006小学组复赛题)。(p30)

小朋友都喜欢做游戏,今天就教大家一个游戏。游戏规则非常简单,基本描述如下:

假设有n个小朋友玩这个游戏,那么我们把所有的人从1到n都逐一编好号码,以便游戏的开始。n个同学根据自己的编号按照顺时针顺序站成一个圈。如下图(以10人为例):

1

10 2

9 3

8 4

7 5

6

现在从编号1的小朋友开始按照顺时针的方向报数,报数的规则是,我们只做1﹀2报数,也就是报完1再报2,然后再报1,再报2......。当有人报数报到2时,此人就输掉了游戏,必须离开,当某个人离开游戏后,大家仍然保持相对的位置继续报数,直到只有1个人剩下时才停止,这个人就是游戏的胜利者。我们由上图(以10人为例),可以得到依次离开游戏的顺序:2, 4, 6, 8, 10, 3, 7, 1, 9。最后胜利者为编号是5的小朋友。

经过几次游戏,聪明的小明感觉到了其中是有规律的,他猜测如果已知参与游戏的人数,那么这个胜利者编号就是固定的,但是他却没有计算出来到底谁会赢得游戏。现在请你来帮助小明去计算到底谁是游戏的胜利者。

每组数据都会告诉你参与这个游戏的人数n,并且n不会超过1000。请你对于每组数据都输出那个胜利者的编号。

〔样例输入1]

4

f样例输出1)

1

(解释:离开游戏的顺序是:2, 4, 3。所以说剩下的编号为1的是胜利者。)

〔样例输入2〕

10

〔样例输山2〕

5

(p34)

(p34)

(p34)

(p34)

(p34)

(p34)

p40

【例4】产生整数序列。

编程按递增顺序产生序列{M}中最小的100个整数。{M}定义如下:

1)整数1属于{M};

2)如果x属于{M},则y=2x+1, y=3x+1也属于{M};

3)除了上述两个条件外,再无其他整数属于{M}.

分析:显然整数序列{M}是按递推定义的。现在要按递增顺序产生序列{M}中最小的100个整数。首先把数1放入到{M}中,然后按y=2x+1, y=3x+1产生两个数放置到序列的后面,按递增顺序排列。

由于按表达式y=2x+1产生的数放置的位置可能不符合要求,使用插入排序法能很快调整递增顺序。在使用插入排序时,从后往前依次把数据后移,空出位置放置刚产生的整数。当发现新产生的数与序列中原有的某数相等时,要把原来后移的数据移回原处。

p41

〔例5〕数的计数(NOIP-2001)。我们要求找出具有下列性质的数的个数(包含输入的自然数n):

先输入一个自然数n (n ≤ 1000),然后对此自然数按照如下方法进行处理:1.不作任何处理;

2.在它的左边加上一个自然数,但该自然数不能超过原数的一半;

3.加上数后,继续按此规则进行处理,直到不能再加自然数为止。

样例,输入:6

输出:6

即满足条件的数有6个(以下部分不必输出)。

6

16

26

126

36

136

[p56]

【例2】从下列国家名称中找到以J打头的国家名称:

China,Japan,America,India,Laos,

DATA China,Japan,America,India,Laos

P101

(2)用随机函数产生num个(1≤num≤100)9.17到917之间的实数(保留小数点后两位),并存放在数组x中,然后将前n个数颠倒排放。

(3)对随机产生的100个0到50之间的随机整数用一个数组存放后进行排序,然后再将其中重复出现的数进行删除,只保留一个,使得剩下的数中任何两个都不相同且连续存储在原数组中(2002年江苏年江苏省小学生组试题)。

(4)我们将左右对称的自然数称为回文数,例如:121, 4114等;将只能被1与其本身整除的自然数称为素数,例如:7, 353等。键入N,M,求出N至M(含N与M)之间既是回文数又是素数的自然数共有多少个,(2002年江苏省小学组试题)

(5)随机产生100个1到100之间的整数,在其中查找某个数,并输出其所在位置。

(6)从键盘输入一个正整数n,计算并输出比n小并且与n互素的数的个数。(两个数互素是指它们的最大公约数等于1。)

相关文档
最新文档