让这几个数去减同一个数,我好像看见过这种算法的

解决方案 »

  1.   

    我觉得你的方法还真是比较简单的。至于最简单的方法,我想了很久还没想到。同时减一个数好像没这么简单。二分法也是一样。
      

  2.   

    二分法好像是对有序的数组进行查找时用的吧。
    我觉得这个没有特别的算法,这样就可以了啊。
    1.用一个临时变量保存临时最大值。
    2.把第一个元素作为临时最大值
    3.从第二个元素开始循环,如果哪个元素比这个临时最大值大,把这个元素赋值给这个临时最大值
    4.循环到最后,这个临时最大值就是真正的最大值了。function Max(const Aints: array of Integer): Integer
    var
      iIndex: Integer;
    begin
      if High(Aints) >=0 then begin
        Result := Aints[0];
      end
      else begin
        Exception.Create('没有元素,无法获取最大值!');
      end;
      for iIndex := 1 to High(Aints) do begin
        if Aints[iIndex] > Result then begin
          Result := Aints[iIndex];
        end;
      end;
    end;