数组及应用练习题(一)
一、反序( fx.pas )
【问题描述】
输入n个不超过20000的整数。按输入相反的输出n个整数。 【输入文件】
输入文件fx.in包括两行数据。 第一行只有一个正整数:n
第二行共有n个不超过20000的整数。 【输出文件】
输出文件fx.out只有一行共有n个整数,顺序与输入的相反,数与数之间用一个空格隔开。
【样例输入】 3 1 2 3
【样例输出】 3 2 1
【数据限制】
100%的数据:1 <= n <= 10 000。
( ** P1142 ** )
二、两行整数相加( xj.pas )
【问题描述】
输入两行整数,输出它们的和 【输入文件】
输入文件xj.in共有三行:
第一行只有一个正整数:n 第二行共有n个整数 第三行共有n个整数
第二、三行中的所有整数的绝对值均不大于10000 【输出文件】
输出文xj.out只有一行共有n个整数:相对应位置上的两个整数之和,数与数之间用一个空格隔开 【样例输入】 3
1 -2 4 2 1 -9
【样例输出】 3 -1 -5
【数据限制】
100%的数据:1 <= n <= 1 000。
( ** P1144 ** )
三、准方差( zfc.pas )
【问题描述】
输入n个正整数,先求出它们的平均值x,然后求出所有数据与x的差的平方和S 。 【输入文件】
输入文件zfc.in包括两行数据: 第一行只有一个正整数:n
第二行共有n个正整数,每个正整数均不超过500,数与数之间用一个空格隔开。 【输出文件】
输出文件zfc.out只有一行且只有一个实数:S (结果保留4位小数)。 【样例输入】 3 1 1 3
【样例输出】 2.6667
【数据限制】
100%的数据:1 <= n <= 10 000。
( ** P1143 ** )
四、整数环( zsh.pas )
【问题描述】
将输入的n个整数形成一个环,然后从第k个数开始输出整个整数环。 【输入文件】
输入文件zsh.in共有二行:
第一行只有二个正整数:n k
第二行共有n个整数,所有整数的绝对值均不大于10000 【输出文件】
输出文zsh.out只有一行共有n个整数:从第k个数开始的整个环,数与数之间用一个空格隔开 【样例输入】 5 2
1 2 3 4 -5 【样例输出】 2 3 4 -5 1
【数据限制】
100%的数据:1 <= k < n <= 1 000。
( ** P1146 ** )
五、最大值( max.pas )
【问题描述】
输入n个整数,输出所有相邻两数的和或积的最大值。 【输入】
输入文件max.in共有两行:
第一行只有一个正整数:n
第二行共有n个整数,所有整数的绝对值均不大于10000
【输出】
输出文件max.out只有一行且只有一个整数:所有相邻两数的和或积的最大值。 【样例输入】 5
1 3 -4 2 -8 【样例输出】 4
【数据限制】
100%的数据:1 <= n <= 1000。
( ** P1147 ** )
六、整数分左右( lr.pas )
【问题描述】
依次输入n个不等于0的整数,将第一个正数存放在a[1]中、第二个正数存放在a[2]中、……,将第一个负数存放在a[n]中、第二个负数存放在a[n-1]中、……。当n个整数处理完成后依次输出数组a中的n个数。 【输入文件】
输入文件lr.in包括两行数据。第一行只有一个正整数:n ( 1 <= n <= 10000 ),第二行共有n个不等于0的整数,每个整数的绝对值不超过10000。 【输出文件】
输出文件lr.out只有一行共有n个整数,依次是处理后的整数,数与数之间用一个空格隔开。 【样例输入】 10
100 -200 -150 140 129 -134 -167 -198 200 111 【样例输出】
100 140 129 200 111 -198 -167 -134 -150 -200
七、陶陶摘苹果( apple.pas )
【问题描述】
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,
陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。 【输入文件】
输入文件apple.in包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。 【输出文件】
输出文件apple.out包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。
【样例输入】
100 200 150 140 129 134 167 198 200 111 110
【样例输出】 5
八、编码问题( bmwt.pas )
【问题描述】
设有一个数组A:array[0..n-1] of integer;数组中存放的元素为0至n-1之间的整数,且A[i]<>A[j](当i<>j时)。 如:n=6时,A=(4,3,0,5,1,2) 此时,数组A的编码定义如下: A[0]的编码为0
A[i]的编码为:在A[0],A[1],……,A[i-1]中比A[i]的值小的个数(i=1,2,……,n-1) 所以上面的数组A的编码为:B=(0,0,0,3,1,2) 【输入】
输入文件bmwt.in共有二行:
第一行只有一个正整数:n
第二行共有n个整数,对应于数组A的n个元素
【输出】
输出文件bmwt.out只有一行共有n个元素:数组A的编码B。 【样例输入】 6
4 3 0 5 1 2 【样例输出】 0 0 0 3 1 2
【数据限制】
100%的数据:1 <= n <= 500。
( ** P1103 ** )
九、点的线段覆盖( fg.pas )
【问题描述】
在一条射线上有n个点,用一条长为k的线段去覆盖,最多能盖住几个点? 假定:线段的顶点碰到某个点,就可以认为该点已被覆盖。 【输入】
输入文件fg.in共有两行。
第一行只有两个正整数:n k 其中:n表示点的个数,k表示线段的长度 第二行共有n个正整数xi,表示点的坐标,数与数之间用一个空格隔开 【输出】
输出文件fg.out只有一行且只有一个正整数:最多能覆盖的点数。 【样例输入】 3 10 1 12 24 【样例输出】 1
【数据限制】
100%的数据:1 < n < 10000 , 0 < xi <= 1 000 000 , 1 <= k <= 10 000。
( ** P1183 ** )