procedure TForm1.Button1Click(Sender: TObject);
var
  A,A_T,A_H: Array of Integer;
  I,K,N,M: Integer;
begin
  N := 8; //总人数,应该大于2
  M := 3; //从1开始数,第几个人出列
  SetLength(A,N);
  SetLength(A_T,N);
  SetLength(A_H,N);
  for I := Low(A) to High(A) do
    A[I] := I + 1;  while Length(A) > 2 do
  begin
    A_T := Copy(A,M,Length(A)-M);
    A_H := Copy(A,0,M-1);
    SetLength(A,Length(A)-1);0D    K := Length(A_T);
    for I := Low(A_T) to High(A_T) do
0A      A[I] := A_T[I];
    for I := Low(A_H) to High(A_H) do
0A      A[I+K] := A_H[I];
  end;
  A := Copy(A,1,1);
  ShowMessage(IntToStr(A[0]));  //最后剩下的
end;—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
             毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
  I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
I.Desire := '加不加分随你';
—————————————————————————————————
    

解决方案 »

  1.   

    大家可以测试一下我上面的算法看对不对。—————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
    I.Desire := '加不加分随你';
    —————————————————————————————————