求一碰局算法,请帮小弟个忙。 ( 积分: 50 )

  • 主题发起人 主题发起人 Liuren_flf
  • 开始时间 开始时间
L

Liuren_flf

Unregistered / Unconfirmed
GUEST, unregistred user!
有A,B两队,各队人数不定。A队走出2个人、B队走出1个人为一组(共三人)或者A队走出1个人、B队走出2个人也为一组(共三人),如何求出最大的组数?
 
有A,B两队,各队人数不定。A队走出2个人、B队走出1个人为一组(共三人)或者A队走出1个人、B队走出2个人也为一组(共三人),如何求出最大的组数?
 
c:=(A+B) div 3;

式中C就是两队最大可凑成的组数
 
A = 100;
B = 1;
C := (100 +1) div 3;
正确吗?
 
function GetMax(A, B: integer): integer;
begin
if (A > 0) and (B> 0) then
begin
if Max(A, B) >= 2*Min(A, B) then
Result := Min(A, B)
else
Result := Round(Max(A, B) / 2);
end else
begin
Result := -1;
end;
end;
 
function GetMax(A, B: integer): integer;
begin
if (A > 0) and (B> 0) then
begin
if Max(A, B) >= 2*Min(A, B) then
Result := Min(A, B)
else
Result := Integer(Max(A, B) / 2 + 0.5);
end else
begin
Result := -1;
end;
end;
 
function GetMax(A, B: integer): integer;
begin
if (A > 0) and (B> 0) then
begin
if Max(A, B) >= 2*Min(A, B) then
Result := Min(A, B)
else
Result := Trunc(Max(A, B) / 2 + 0.5);
end else
begin
Result := -1;
end;
end;
 
不好意思由于没有仔细考虑

function GetMax(A, B: integer): integer;
begin
if A shr 1>=B then result:=B
else if B shr 1>=A then result:=A
else result:=(A+B) div 3;
end;
 
后退
顶部