Ich weiß nicht, warum Dr. Seuss‘ sadistische Figur Sam-I-Am andere dazu bringen wollte, grüne Eier und Schinken zu essen, aber wir bewundern seine Zähigkeit. Hier im geheimen CodeGym-Zentrum haben wir großen Respekt vor den Klassikern. Und wir haben Respekt vor der Kombinatorik. Deshalb ist das deine Aufgabe: Zeige alle möglichen Kombinationen der Wörter „Sam“, „I“ und „Am“ an.
Sam I Am
- 3
Gesperrt
Kommentare (5)
- Beliebt
- Neu
- Alt
Du musst angemeldet sein, um einen Kommentar schreiben zu können
Kate
6 Februar, 08:43
ist vielleicht ein Bug hier?
dieser Code sollte eigentlich richtig sein und gibt alle 6 unterschiedliche Kombinationen raus, der Punkt "All possible combinations should be displayed." bleibt auf rot.
0
Anonymous #11271621
15 Februar, 09:37
dein am muss "Am" geschrieben werden.
0
Kate
27 Februar, 09:27
ah ok, dann macht es Sinn. danke
0
Peter
5 Dezember 2021, 20:26
Gibt es keine bessere Lösung als einfach alle Kombinationen händisch einzugeben?
Ich habe einmal folgendes probiert, das Problem ist allerdings, dass ich nicht weiß, wie ich die Kombinationen von der Schleifen-Variable ableiten kann.
Hat jemand eine Idee? +1
Daniel
3 Oktober 2022, 18:48
Hatte auch keine Lust, das einfach dreimal einzutippen und habe es so gelöst (also auch mit einem Array). Das sind übrigens Permutationen, keine Kombinationen.
Prinzip: Nimm dir für die erste Stelle eine der drei Positionen (das ist die erste for schleife)
für die zweite Stelle nimmst du wieder eine der drei möglichen stellen (das ist die zweite for schleife)
Die zweite Stelle darf aber nicht das gleiche Wort wie das erste sein (deswegen wird eine solche Schleife übersprungen mit "if (i1 == i2) continue;"
für die dritte stelle bleibt nur noch ein Wort übrig, mit 3 - erste stelle - zweite stelle kann man es berechnen.
public class Solution {
public static void main(String[] args) {
String[] s = {"Sam", "I", "Am"};
for (int i1=0; i1<3; i1++) for (int i2=0; i2<3; i2++){
if (i1 == i2) continue;
int i3=3-i2-i1;
System.out.println(s[i1]+s[i2]+s[i3]);
}
}
}
0