1995年信息学奥赛NOI联赛
更早
2022-11-11 16:39:03
97次
一、简答题
求出所有满足下列条件的二位数:将此二位数的个位数字与十位数字进行交换,可得到一个新的数,要求新数与原数之和小于100。
程序要求:每行输出6个满足条件的数。
[算法提要] 分解每一个二位数,然后重新组成一个新数,当满足条件时,用计数器来统计个数。
程序: K := 0;
FOR i := ______①____ TO 99 DO
X := _____②_____; Y := _____③_____;
J := x * 10 + y;
IF ____④_____ THEN
K := k + 1;
Write(I : 4);
______⑤_____ THEN WRITELN;
ENDIF
ENDFOR;
【知识点】 信息学NOI联赛
求出2~1000之间长度最长的、成等差数列的素数(质数)。
例如:在2~50之间的全部素数有
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47
其中公差为1的素数数列为2, 3,其长度为2
公差为2的素数数列为3, 5, 7,其长度为3
……
程序要求:输出满足条件的素数数列。
[算法提要]:首先用筛选法求出此范围内的全部素数,存放在数组B中,然后用2个变量i,j,逐步求出满足条件的素数数列。
程序: Max := 0; num := 1000;
For i := 2 to num do
b[i] := i;
ENDFOR
For i := 2 to ______①______ do
If _____②_____ then
k := i + i;
While k <= num do
B[k] := 0;
K := k + i
ENDWHILE;
ENDIF;
ENDFOR;
For i := 2 to num - 1 do
If ____
【知识点】 信息学NOI联赛
找出小于33的6个正整数,用这些整数进行加法运算,使得包括原来的整数在内能组成尽可能多的不同整数。
例如:用2,3,5这三个数能可组成下面的数
2, 3, 5
2 + 3 = 5, 但5已经存在
2 + 5 = 7, 3 + 5 = 8, 2 + 3 + 5 = 10
所以用2,3,5能组成6个不同的数。
程序要求:输出所选的这6个数,以及能组成不同整数的个数。
[算法提要]:选择的这6个数,用来组成数时应该尽可能不重复,引入数组A保存找出的这6个整数。
程序: A[1] := 1; t := 0;
For i := 2 to 6 do
_____①____;
for j := 1 to i - 1 do
s := ______②_______;
ENDFOR;
a[i] := _______③_______;
ENDFOR;
FOR i:=1 TO 6 DO
T := ______④______ WRITE(a[i], ' ');
ENDFOR;
Writeln('能组成不同整数的个数:', t)
End.
【知识点】 信息学NOI联赛
求出二个整形数组错位相加的最大面积。
1.数组面积的定义:(限定数组头尾不为0)设有一个数组C=(4,8,12,0,6)
则C的面积为:
Sc=(4+8)/2 + (8+12)/2 + 12/2 + 6/2
也就是说,Sc=各梯形面积之和(其中梯形的高约定为1,三角形作为梯形的特殊情况处理)。

又如D=(12, 24, 6)时,其面积的定义为Sd=(12+24)/2 + (24+6)/2

2.数组错位相加的定义
设有2个正整数的数组a,b,长度为n,当n=5时:
a=(34,26,15,44,12) b=(23,46,4,0,18)
对a、b进行错位相加,可能有下列情况
34 26 15 44 12
+) 23 46 4 0 18
34 26 15 44 12 23 46 4 0 18
或:
34 26 15 44 12
+) 23 46 4 0 18 -
34 26 15 44 35 46 4 0 18
或:
34 26 15 44 12
+) 23 46 4 &nb
【知识点】 信息学NOI联赛
