求下面问题的pascal程序,第二题要用冒泡排序
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/08/06 13:19:03
求下面问题的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
第一题 小兔子数(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
![求下面问题的pascal程序,第二题要用冒泡排序](/uploads/image/z/15783238-46-8.jpg?t=%E6%B1%82%E4%B8%8B%E9%9D%A2%E9%97%AE%E9%A2%98%E7%9A%84pascal%E7%A8%8B%E5%BA%8F%2C%E7%AC%AC%E4%BA%8C%E9%A2%98%E8%A6%81%E7%94%A8%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F)
第一题
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
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