#1 6. Januar 2009 return Liste! ich werd gleich verrückt... muss hier ne Aufgabe erledigen aber kann die Lösung einfach nicht finden. Die Aufgabe sieht wie folgt aus: Man soll ganzzahlige Zahlentripel finden die mit Pythagoras übereinstimmen. Also a² + b² = c². so, wenn man die ganzen Zahlentripel gefunden und in eine Liste eingetragen hat soll man sie wiedergeben. aber wie zum Teufel geht das mit return + ner liste! :angry::angry: Hoffe es kann mir schnell einer helfen. fragl0r Code: class BruteForce implements TripelFinder { /** * Findet Pythagoras-Tripel im Intervall [von, bis]. * * @param von * der Beginn des Intervalls, mindestens 1 * @param bis * das Ende des Intervalls, mindestens von * @return eine Liste der gefundenen Pythagoras-Tripel */ public List<Tripel> findeTripel(int von, int bis) { if (von < 1) throw new IllegalArgumentException(String.valueOf(von)); if (bis < von) throw new IllegalArgumentException(String.valueOf(bis)); // TODO neue Liste von Tripeln erstellen List<String> Tripel; Tripel = new ArrayList<String>(); for (int a = von; a <= bis; ++a) { for (int b = von; b <= bis; ++b) { for (int c = von; c <= bis; ++c) { // TODO falls Pythagoras-Tripel gefunden: // neues Tripel erstellen und der Liste hinzufuegen if (((a*a)+(b*b)) == (c*c) || a <= b) { String d = (new Integer(a)).toString() + (new Integer(b)).toString() + (new Integer(c)).toString(); Tripel.add(d); } } } } // TODO gefuellte Liste zurueckgeben return ???!!!?!?!?! } } + Multi-Zitat Zitieren
#2 6. Januar 2009 AW: return Liste! Der Rückgabewert deiner Funktion ist die List Triple ganz einfach. Änderungen hab ich in rot gemacht Hoffe das war der fehler. habs net getestet. Code: class BruteForce implements TripelFinder { /** * Findet Pythagoras-Tripel im Intervall [von, bis]. * * @param von * der Beginn des Intervalls, mindestens 1 * @param bis * das Ende des Intervalls, mindestens von * @return eine Liste der gefundenen Pythagoras-Tripel */ public List<[color=red]String[/color]> findeTripel(int von, int bis) { if (von < 1) throw new IllegalArgumentException(String.valueOf(von)); if (bis < von) throw new IllegalArgumentException(String.valueOf(bis)); // TODO neue Liste von Tripeln erstellen List<String> Tripel; Tripel = new ArrayList<String>(); for (int a = von; a <= bis; ++a) { for (int b = von; b <= bis; ++b) { for (int c = von; c <= bis; ++c) { // TODO falls Pythagoras-Tripel gefunden: // neues Tripel erstellen und der Liste hinzufuegen if (((a*a)+(b*b)) == (c*c) || a <= b) { String d = (new Integer(a)).toString() + (new Integer(b)).toString() + (new Integer(c)).toString(); Tripel.add(d); } } } } // TODO gefuellte Liste zurueckgeben return [color=red]Tripel;[/color] } } + Multi-Zitat Zitieren
#3 6. Januar 2009 AW: return Liste! Dazu kannst du das adden etwas einfacher machen, ohne Integer.toString und so. ((a*a)+(b*b)) == (c*c) || a <= b Das a <= b ist glaube ich nicht richtig. Bist du dir sicher das diese if-Abfrage richtig ist? + Multi-Zitat Zitieren
#4 7. Januar 2009 AW: return Liste! ich glaube auch nicht dass diese if abfrage richtig ist, da || ja oder bedeutet und daher die abfrage ja auch true werden kann wenn kein tripple vorhanden ist + Multi-Zitat Zitieren