第一题
var n,i,j,k,a,b,s:longint;
begin
s:=0;
readln(a,b);
for i:=a to b do begin
n:=sqrt(i);
j:=i;
k:=0;
while j<>0 do begin
inc(k,j mod 10);
j:=j div 10;
end;
k:=sqrt(k);
while n<>0 do begin
dec(k,n mod 10);
n:=n div 10;
end;
if k=0 then inc(s);
end;
writeln(s);
end.
第二题
var n,k,i,j,t:longint;
a:array[1..10000] of longint;
begin
readln(n,k);
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;
end;
writeln(a[k]);
end.
追问
第二题还有一个要求:(相同大小的整数只计算一次)这个怎样实现呢?
追答
排完序还是扫一遍 重复的数忽略掉
i:=1;
j:=1;
while j<k do begin
inc(i);
if a[i]<>a[i-1] then inc(j);
end;
writeln(a[i]);
复制粘贴的不留空!
你这是复制粘贴的吧