Unsere BewerberInnen für eine Java-ProgrammierInnen Stelle mussten vor einer Woche u.a. folgende Aufgabe lösen.
Schreiben Sie alle Zahlen von 1 bis 100 auf.
Wenn eine Zahl durch drei teilbar ist, schreiben Sie statt der Zahl das Wort "Fizz".
Wenn die Zahl dagegen durch fünf teilbar ist, schreiben Sie statt der Zahl das Wort "Buzz".
Sollte die Zahl sowohl durch drei als auch durch fünf teilbar sein,
schreiben sie statt der Zahl das Wort "FizzBuzz".
Nutzen Sie eine Programmiersprache Ihrer Wahl.
Erstaunlicherweise sind viele gescheitert.
Obwohl alle zumindest einen Bachelor oder eine Ausbildung zum Anwendungsentwickler gemacht haben.
Wie kann das sein?
Und wie würdet ihr die Aufgabe möglichst elegant lösen?
---------- Post added at 23:12 ---------- Previous post was at 22:25 ----------
Das ist meine persönliche unleserliche Lösung.
Code:
void fizzbuzz() {
for (int i = 1; i <= 100; i++)
System.out.println(i % 15 != 0 ? i % 5 != 0 ? i % 3 != 0 ? i : "Fizz" : "Buzz" : "FizzBuzz");
}
Ein Bewerber hatte ähnliche Gedanken, nur rekursiver.
Code:
....
System.out.println(fb.fizzBuzz(100));
....
String fizzBuzz(int n) {
return (n > 0) ? fizzBuzz(n - 1) + (n % 15 != 0 ? n % 5 != 0 ? n % 3 != 0 ? (n + "\n") : "Fizz\n" : "Buzz\n" : "FizzBuzz\n") : "\n";
}
Abgesehen davon waren natürlich auch einige normale if-/else Konstrukte dabei.
Edit://
Gerade gesehen, dass es die gleiche Problemstellung hier schon gibt.
https://free-hack.com/showthread.php...-Program/page3