Alle Herausforderungen
Mittel 0 gelöst 0% Erfolgsquote

Finde rechtwinklige Dreiecks-Tripel

Liste alle ganzzahligen rechtwinkligen Dreiecke mit einem vorgegebenen Umfang auf.

Finde alle Tripel aus positiven ganzen Zahlen a < b < c, für die a² + b² = c² und a + b + c = perimeter gilt. Gib jedes Tripel als [a, b, c] zurück, sortiert nach aufsteigendem a und dann b. Permutationen derselben Seiten dürfen nicht enthalten sein.

Implementiere pythagorean_triplets(perimeter).

Eingabe

perimeter: Die geforderte Summe aller drei Seiten.

Ausgabe

Gib eine Liste der Tripel in der angegebenen Reihenfolge zurück.

Einschränkungen

3 ≤ perimeter ≤ 100.000. Gib eine leere Liste zurück, falls kein Dreieck die Bedingungen erfüllt.

Beispiele

Beispiel 1
Eingabe:
perimeter = 30

Erwartete Ausgabe:
expected = [
    [5, 12, 13]
]
Eingabe:
long long perimeter = 30;

Erwartete Ausgabe:
std::vector<std::vector<long long>> expected = {
    {5, 12, 13}
};
Eingabe:
long perimeter = 30;

Erwartete Ausgabe:
long[][] expected = new long[][] {
    new long[] {5, 12, 13}
};

Erläuterung

5 + 12 + 13 = 30 und 5² + 12² = 13². Dies ist das einzige passende Tripel.

Beispiel 2
Eingabe:
perimeter = 11

Erwartete Ausgabe:
expected = []
Eingabe:
long long perimeter = 11;

Erwartete Ausgabe:
std::vector<std::vector<long long>> expected = {};
Eingabe:
long perimeter = 11;

Erwartete Ausgabe:
long[][] expected = new long[][] {};

Erläuterung

Kein streng wachsendes Tripel aus positiven ganzen Zahlen mit rechtwinkligem Dreieck ergibt die Summe 11.

Referenzen

Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.

Von anderen lernen

Community-Lösungen

Noch keine veröffentlichten Lösungen. Löse die Aufgabe und teile als Erster eine Lösung.