如何用最简单的办法得到一个集合中元素的个数(50分)

  • 主题发起人 主题发起人 zm30
  • 开始时间 开始时间
Z

zm30

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用最简单的办法得到一个集合中元素的个数
 
用枚举法
 
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
Tset=set of 1..90;
Tarr=array[1..sizeof(tset)] of byte;

var i:integer;
s:tset;
count:integer=0;
begin
s:=[12,34,56,1,4,3,6,76,45];
for i:=1 to sizeof(tset) do
while tarr(s)<>0 do
begin
count:=count+tarr(s) and 1;
tarr(s):=tarr(s) shr 1;
end;
write(count);
end.
其中tset越小速度越快,当sizeof(tset)=4时 tarr可以用 longint 代,for循环可以省去


这是我想到的最快的算法了
 
接受firemeteor的答案
 
后退
顶部