几个基本概念的理解
Input 第一行一个整数n :等待插入的数 第二行一个整数m :数列中数的个数 第三行m个整数(空格隔开) Output 一行整数:新的数列(空格隔开)
Sample Input
2
输入
4
1345
Sample Output 12345
处理
找位置 t 移动 插入
输出
program ex1119;
var a:array[1..100] of longint;
i,t,m:integer; n:longint;
n
begin
35
readln(n); readln(m);
for i:=1 to m do read(a[i]);
t:=1;
while (a[t]<n) and (t<=m) do inc(t) ;
{找到要插入的合适的地方}
for i:=m downto t do a[i+1]:=a[i];
a[t]:=n;
for i:=1 to m do write(a[i],' ');
write(a[m+1]);
end.
6 12 34 45 78 88
t
题1123:【入门】数组元素的排序
Description 对数组的元素按从小到大进行排序
Input 有两行 第一行有一个整数n( 5 <= n <= 10 ) 第二行有n个整数 Output 输出更新后的数组 Sample Input 8 12368745 Sample Output 1 2 3 4 5 6 7 8
read(n);
3
for i:=1 to m do
if a[i]=n then begin write(i) ;exit;end;
write(-1);
End.
if a[i]=n then write(i) else write(-1);
题1119:【入门】元素插入有序数组 给你一个整数n和一个数列,这个数列保证从小到大排列,现要求将这个整数n插 入到数列中,使新的数列仍然从小到大排列。
program ex; var a:array[1..10]of integer; i,j,t,n:integer; begin
readln(n); for i:=1 to n do read(a[i]); for i:=1 to n-1 do
for j:=i+1 to n do if a[i]>a[j] then begin t:=a[i];a[i]:=a[j];a[j]:=t;
的出现次数。
Sample Input abdceeef. Sample Output abcdef 111131
题1049:判断是否构成回文 输入一串字符,字符个数不超过100,且以"."结束。 判断它们是否构成回文。 Input 输入只有一行,包括一串字符. Output 输出只有一行TRUE 或者FALSE 12321. TRUE Hint
题1118:给你m个整数,查找其中有无值为n的数,有则输出该数第
一次出现的位置,没有则输出-1。
Input
第一行一个整数m:数的个数 ( 0 <= m <= 100 )
第二行m个整数(空格隔开)( 这些数在 0-999999范围内 )
第三行为要查找的数n
Output n的位置或-1 Sample Input
所谓回文指从左到右和从右到左读一串字符的值是一样的,如 12321,ABCBA,AA等。先读入要判断的一串字符(放入数组letter中),并记 住这串字符的长度,然后首尾字符比较,并不断向中间靠拢,就可以判断出是 否为回文。
program ex1049; var a:array[1..100] of char;
a:array[1..100] of longint;
3
175
readln(m);
Sample Output 571
for i:=1 to m do read(a[i]);
Hint 注意:最后一个数后面没有空格
for i:=m downto 2 do write(a[i],' ') ; write(a[1]);
end; for i:=1 to n do write(a[i]); end.{选"."为结束标志),统计出每个字 母在该字符串中出现的次数(若某字母不出现,则不要输出)。
Input 输入只有一行,包括若干个字符。 Output 输出只有两行,第一行为出现的小写字母,第二行为字母
第三行为要查找的数n
Output n的位置或-1 prongr:amloenx11g18i;nt;
Sample Input
var a:array[1..100] of longint;
4
i,m:integer;
1233 3
Sample Output
n:longint; begin
readln(m); for i:=1 to m do read(a[i]);
i,t:integer; begin
t:=1; read(a[1]); while a[t]<>'.' do
begin t:=t+1; read(a[t]); end; t:=t-1; for i:=1 to t div 2 do if a[i]<> a[t-i+1] then begin write('FALSE');exit; end; if t<>0 then write('TRUE') else write('FALSE'); end.
分析数据类型
由上而下 逐步取精
输入 几行、是否多个用到循环
处理
输出
格式
题1117:给你m个整数,将其逆序输出
Input
m:integer
第一行一个整数m(3 <= m <= 100 ):数的个数
第二行m个整数(空格隔开)(这些数在0-9999999之间)
Output m个整数(空格隔开) Sample Input
n:longint;
4
1233
readln(m);
3 Sample Output 3
for i:=1 to m do read(a[i]); readln(n);
题1118:给你m个整数,查找其中有无值为n的数,有则输出该数第
一次出现的位置,没有则输出-1。
Input
第一行一个整数m:数的个数 ( 0 <= m <= 100 ) 第二行m个整数(空格隔开)( 这些数在 0-999999范围内 )