寻找众数 pascal寻找众数【问题描述】在一个有限的整数序列中,出现次数最多的那个数称为这个序列的众数.如序列:3,1,2,1,5,1,2.其中1出现的次数最多,出现3次,所以1是这个序列的众数.一个有
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/19 11:41:03
![寻找众数 pascal寻找众数【问题描述】在一个有限的整数序列中,出现次数最多的那个数称为这个序列的众数.如序列:3,1,2,1,5,1,2.其中1出现的次数最多,出现3次,所以1是这个序列的众数.一个有](/uploads/image/z/2696274-18-4.jpg?t=%E5%AF%BB%E6%89%BE%E4%BC%97%E6%95%B0+pascal%E5%AF%BB%E6%89%BE%E4%BC%97%E6%95%B0%E3%80%90%E9%97%AE%E9%A2%98%E6%8F%8F%E8%BF%B0%E3%80%91%E5%9C%A8%E4%B8%80%E4%B8%AA%E6%9C%89%E9%99%90%E7%9A%84%E6%95%B4%E6%95%B0%E5%BA%8F%E5%88%97%E4%B8%AD%2C%E5%87%BA%E7%8E%B0%E6%AC%A1%E6%95%B0%E6%9C%80%E5%A4%9A%E7%9A%84%E9%82%A3%E4%B8%AA%E6%95%B0%E7%A7%B0%E4%B8%BA%E8%BF%99%E4%B8%AA%E5%BA%8F%E5%88%97%E7%9A%84%E4%BC%97%E6%95%B0.%E5%A6%82%E5%BA%8F%E5%88%97%EF%BC%9A3%2C1%2C2%2C1%2C5%2C1%2C2.%E5%85%B6%E4%B8%AD1%E5%87%BA%E7%8E%B0%E7%9A%84%E6%AC%A1%E6%95%B0%E6%9C%80%E5%A4%9A%2C%E5%87%BA%E7%8E%B03%E6%AC%A1%2C%E6%89%80%E4%BB%A51%E6%98%AF%E8%BF%99%E4%B8%AA%E5%BA%8F%E5%88%97%E7%9A%84%E4%BC%97%E6%95%B0.%E4%B8%80%E4%B8%AA%E6%9C%89)
寻找众数 pascal寻找众数【问题描述】在一个有限的整数序列中,出现次数最多的那个数称为这个序列的众数.如序列:3,1,2,1,5,1,2.其中1出现的次数最多,出现3次,所以1是这个序列的众数.一个有
寻找众数 pascal
寻找众数
【问题描述】
在一个有限的整数序列中,出现次数最多的那个数称为这个序列的众数.如序列:3,1,2,1,5,1,2.其中1出现的次数最多,出现3次,所以1是这个序列的众数.一个有限序列中的众数可能不止一个,如序列:8 2 8 2 2 11 1 1 8 1 13 13,其中1,2,8都出现3次,所以他们3个都是这个序列的众数.
任务:对于给定的整数序列,求出这个序列的众数及其出现的次数,如果这个序列的众数不止一个,输出最大的那个众数及其出现的次数.
【输入】
第一行正整数n,表示给定序列的个数.
第二行是n个用空格隔开的整数,代表给定的序列.
【输出】
一行两个用一个空格隔开的数,第一个是众数,第二个是该众数在序列中出现的次数.
【输入输出样例】
most.inmost.out
12
8 2 8 2 2 11 1 1 8 1 13 138 3
【数据规模和约定】
30%的数据:n
寻找众数 pascal寻找众数【问题描述】在一个有限的整数序列中,出现次数最多的那个数称为这个序列的众数.如序列:3,1,2,1,5,1,2.其中1出现的次数最多,出现3次,所以1是这个序列的众数.一个有
楼上说的都是对的,这是自己打的代码,帮你实现出来了,参考一下.
var i,j,n,max,maxn:longint;
a:array[1..200000]of longint;
procedure Sort(l, r: longint);
var
i, j, x, y: longint;
begin
i := l; j := r; x := a[(l+r) DIV 2];
repeat
while a[i] < x do i := i + 1;
while x < a[j] do j := j - 1;
if i j;
if l < j then Sort(l, j);
if i < r then Sort(i, r);
end;
begin
readln(n);
for i:=1 to n do
read(a[i]);
a[n+1]:=maxlongint;
sort(1,n);
i:=0;
repeat
inc(i);
for j:=i+1 to n+1 do
if a[j]a[i] then break;
if maxnmax) then max:=a[i];
i:=j-1;
until i>=n;
writeln(max,' ',maxn);
end.