作业帮 > 综合 > 作业

求下面问题的pascal程序,第二题要用冒泡排序

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/27 12:23:57
求下面问题的pascal程序,第二题要用冒泡排序
第一题 小兔子数(rabbit)问题描述
设S(N)表示N的各位数字之和,如S(484)=4+8+4=16,S(22)=2+2=4.如果一个正整数满足S(x * x)= S(x) * S(x),我们称之为Rabbit Number.比方说,22就是一个Rabbit Number,因为S(484)= S(22) * S(22).
现在,给出一个区间[L,R],求在该区间内的Rabbit Number的个数.
输入格式
输入仅一行,为空格隔开的两个数L和R
输出格式
输出仅一行一个整数,表示所求Rabbit Number的个数
输入样例
1 58
输出样例
12
数据范围
1
第一题
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 j0 do begin
inc(k,j mod 10);
j:=j div 10;
end;
k:=sqrt(k);
while n0 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