急!!四个Pascal问题!!

来源:百度知道 编辑:UC知道 时间:2024/07/02 17:51:27
急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急!!最好在星期5之前有答案!!!全都答对有追分的!!!!!!

友情提醒:整数类型一律使用longint,字符串类型一律使用string,输出一行一定要用writeln。

第一题:求和(sum)

输入n(1<=n<=5000)个正整数,每个数都在1到20000之间;要求这n个数的总和。

输入格式:
第一行,一个正整数n,1<=n<=5000
第2~n+1行,每行一个正整数,每个数都在1到20000之间

输入样例:(sum.in)
4
36
38
40
42

输出格式:
输出文件只有一行包含一个整数,即要求的n个数的总和。

输出样例:(sum.out)
156

第二题:判断回文数(huiwen)

回文数是指一个像16461这样“对称”的数,即:将这个数的数字按相反的顺序重新排列后,所得到的数和原来的数一样。输入一个正整数,判断它是否为回文数,如果是回文数则输出“Yes”,否则输出将这个数的数字按相反的顺序重新排列后的数。

输入格式:
输入文件仅有一行包含一个正整数n,n为longint类型的数,不超过2000000000。

输入样例:(huiwen.in)
2009

输出格式:
输入文件仅有一行,如果从输入文件读入的数是回文数则输出“Yes”,否则输出将这个数的数字按相反的顺序重新排列后的数。

输出样例:(huiwen.out)
9002

输入样例2:(huiwen.in)
2002

输出样例2:(huiwen.out)
Yes

第三题:中位数(median)

所谓中位数,就是将一组数据从小到大依次排列,把处在最中间位置的一个数(或最中间两个数的平均数)叫做这组

1.var a:array[1..5000]of longint;
sum,i,n:longint;
t,z:text;
begin
assign(t,'sum.in');
reset(t);
assign(z,'sum.out');
rewrite(z);
sum:=0;
readln(t,n);{个数}
for i:=1 to n do
begin
readln(t,a[i]);
sum:=sum+a[i];
end;
writeln(z,sum);
close(t);
close(z);
end.
2.
var t,z:text;
k,i:longint;
a:string;
b:boolean;
begin
b:=true;
assign(t,'huiwen.in');
reset(t);
readln(t,a);
close(t);
assign(z,'huiwen.out');
rewrite(z);
k:=length(a);
for i:=1 to k do
if a[i]<>a[k+1-i] then b:=false;
if b then writeln(z,'yes')
else begin
for i:= k downto 1 do
write(z,a[i]);
end;
end.
3.
var n:integer;
a:array[1..100]of integer;
i,j,l:integer;
t,z:text;
b:boolean;
begin
assign(t,'