Einzelnen Beitrag anzeigen

Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#32

Re: Mathe Problem 1+2-3 ... +99-100

  Alt 8. Jun 2005, 16:41
Jetzt noch ein Lösungsvorschlag von mir :
Man errechnet die Summe der positiven und die der negativen Zahlen mit der Gaußschen Summenformel und subtrahiert sie dann.
Sollte langsamer als die "Pakete"-Idee sein, dafür kann man alles schnell von 1+2-3+4... auf 1-2+3-4... oder auch 2-3+4-6+6-9... umstellen.
Delphi-Quellcode:
function Foo: Integer;
  // Erste Zahl, Letzte Zahl, Anzahl
  function Gauss(AFrom, ATo, ACount: Integer): Integer;
  begin
    Result := (AFrom + ATo) * ((ATo - AFrom) div ACount + 1) div 2;
    // = (From + To) * Steps / 2
    // Steps = (From - To) div Count + 1
  end;

begin
  Result := Gauss(1, 99, 2) - Gauss(2, 100, 2); //1 - 2 + 3...
  // Result := Gauss(2, 50 * 2, 2) - Gauss(3, 50 * 3, 3);
  //2 - 3 + 4 - 6..., 50 Paare
end;
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat