Code zum Auffinden pythagoreischer Tripletts

7

Ich versuche gerade diese Frage:

  

Ein pythagoreisches Triplett ist eine Menge von drei natürlichen Zahlen, a, b und c, für die   a 2 + b 2 = c 2 .

     

Zum Beispiel 3 2 + 4 2 = 9 + 16 = 25 = 5 2 .

     

Es existiert genau ein pythagoreisches Triplett, für das a + b + c = 1000 ist.   Finden Sie das Produkt abc.

Mein Code ist wie folgt, ich denke, es sollte korrekt sein, aber die Seite sagt mir, dass meine Antwort falsch ist? Kann mir bitte jemand helfen, die Fehler in meiner Logik zu sehen?

%Vor%     
Simon Kiely 09.10.2011, 15:50
quelle

6 Antworten

7

Ich denke, du verpasst eine Reihe von Klammern. Die Einrückung führt mich zu der Annahme, dass die zwei innersten Aussagen zusammengehören, aber Sie brauchen geschweifte Klammern, damit das korrekt ist.

%Vor%

Ohne die geschweiften Klammern enthält product immer das Produkt der letzten Werte von a , b und c . (333 * 500 * 167 == 27805500).

    
Blastfurnace 09.10.2011, 16:38
quelle
10

Hier sind 5 Lösungen (von langsam bis schnell):

1) Triviale Implementierung - 732857 Mikrosekunden (0,7 Sekunden)

%Vor%

2) Begrenzen Sie die untere Grenze für b & amp; c (begründe die Ordnungsbeziehung) - 251091 Mikrosekunden (0,2 Sekunden)

%Vor%

3) Begrenzen Sie die untere & amp; obere Grenzen für b & amp; c - 111220 Mikrosekunden (0,1 Sekunden)

%Vor%

4) Grenze niedriger & amp; obere Grenzen für b und fixe Werte für c - 2625 Mikrosekunden

%Vor%

5) Verwenden Sie die Formel Euclid - 213 Mikrosekunden

%Vor%     
ROMANIA_engineer 12.11.2014 00:08
quelle
2

Obwohl andere bereits bestimmte Korrekturen für Ihren Code vorgenommen haben, finden Sie hier einen allgemeineren Hinweis, der auch bei anderen Problemen hilfreich sein kann. Testen Sie Ihren Code auf einer einfacheren Version des Problems.

Sehen Sie zum Beispiel, ob Ihr Programm 6,8,10 als Triplett mit einer Summe von 24 findet. Mit einem kleineren Test können Sie den Code durchgehen, um zu sehen, wo es schief geht.

    
xan 10.10.2011 02:33
quelle
2

Sie können es auf diese Weise versuchen,

%Vor%

Dies implementiert die Formel von Euklid zur Erzeugung von pythagoreischen Tripletts wie hier hier

erklärt

Beachten Sie, dass wir bei dieser Methode nur Triplets machen und somit unerwünschte Wiederholungen reduzieren.

und die Ausgabe ist a : 375 b : 200 c : 425 Product ist 31875000

    
COD3BOY 09.10.2011 16:54
quelle
2

/ /

%Vor%     
vijay 25.11.2012 07:13
quelle
0
%Vor%     
Gandalf White 777 01.02.2018 14:26
quelle

Tags und Links