题目 2017.10.27

发表在    深坑帝国 10-27 22:16:55

0 2652 2

首页问题

精选

用户

特色

求下面问题的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)。 现在,给出一个区间...展开
750427026 | 浏览 312 次
我有更好的答案
邀请更新
发布于2013-10-27 20:10
最佳答案
第一题
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]);
追问
如果第一题用函数的话怎么做呢?
 本回答由提问者推荐
举报| 答案纠错 | 评论 
4 3

qwwrqqt 

采纳率:77% 擅长: 学习帮助 数学 物理学 化学 生物学

为您推荐:

京ICP证030173号-1   京网文【2013】0934-983号     ©2017Baidu  使用百度前必读  |  知道协议  |  百度知道品牌合作

分享

任务列表返回顶部


登录或注册后发布评论
author avatar

黑客1

英勇黄铜Ⅲ 467荣誉值

10

0

1