var
f:array[1..10000]of boolean;
max,sum:integer;
begin
(l 为数组长度,没的话自己求,有的直接套上去)
max:=0;
for i:=1 to l do begin f[a[i]]:=true;if a[i]>max then max:=a[i];end;
sum:=0;
for i:=1 to max do
begin
if f[i] then begin write(i,' ');inc(sum);
if sum mod 4=0 then writeln;
end;
end.
利用桶排序的思想,就是以数组下标来表示一个数字,就可以判断重复了。
你没说是什么语言,我打了个PASCAL的。看不懂也给点分吧!