FizzBuzz
FizzBuzz ist ein Zählspiel. Die Spieler zählen ab 1 aufwärts, aber einige Zahlen werden durch Wörter ersetzt: Eine durch 3 teilbare Zahl wird als Fizz angesagt, eine durch 5 teilbare Zahl als Buzz und eine durch 3 und 5 teilbare Zahl als FizzBuzz. Alle anderen Zahlen werden wie gewohnt angesagt. Die ersten fünfzehn Runden lauten 1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz.
Die Reihenfolge der Prüfungen ist der entscheidende Trick. 15 ist durch 3 teilbar. Wenn du also zuerst auf Teilbarkeit durch 3 prüfst und sofort "Fizz" zurückgibst, erreichst du nie den Fall für beide. Prüfe zuerst die kombinierte Regel: Eine Zahl, die durch 3 und 5 teilbar ist, ist genau eine Zahl, die durch 15 teilbar ist. Prüfe dann auf Teilbarkeit durch 3, danach durch 5 und greife erst dann auf die Zahl selbst zurück.
Die klassische Version gibt die gesamte Folge aus. Hier antwortest du jeweils für eine einzelne Zahl: Gegeben n, gib zurück, was ein Spieler in Runde n sagt. Zum Beispiel ist Runde 9 "Fizz", Runde 10 "Buzz" und Runde 11 "11".
Schreibe eine Funktion namens fizzBuzz, die eine positive Ganzzahl n erhält und eine Zeichenfolge zurückgibt: "FizzBuzz", wenn n sowohl durch 3 als auch durch 5 teilbar ist, "Fizz", wenn sie nur durch 3 teilbar ist, "Buzz", wenn sie nur durch 5 teilbar ist, und andernfalls n als Dezimalzeichenfolge (zum Beispiel "7").
Einschränkungen: 1 <= n <= 10^9.
Funktion
- arg1integer
- Gibt zurückstring
Beispiele
- Eingabe
- arg1 = 15
- Ausgabe
- "FizzBuzz"
- Eingabe
- arg1 = 7
- Ausgabe
- "7"
+11 versteckte Tests beim Einreichen
Tipps
Öffne sie nacheinander. Jeder verrät ein bisschen mehr.
Der Restoperator zeigt dir, ob eine Zahl eine andere teilt:
nist genau dann durch 3 teilbar, wenn der Rest bei der Division vonndurch 3 0 ist.Denk an 15. Die Zahl ist durch 3 und durch 5 teilbar. Welche deiner Prüfungen sollte zuerst ausgeführt werden, damit 15
"FizzBuzz"und nicht"Fizz"erhält?Prüfe zuerst, ob die Zahl durch 15 teilbar ist, dann durch 3 und anschließend durch 5. Wenn nichts davon zutrifft, wandle die Zahl in eine Zeichenkette um. Achte darauf, dass bei der Umwandlung jede Ziffer ausgeschrieben wird, sodass 10^9 als
"1000000000"und nicht in wissenschaftlicher Notation ausgegeben wird.
Eine vollständige Lösungserklärung zu dieser Aufgabe folgt bald.
Ähnliche Aufgaben
Aufgaben mit denselben Ideen. Wer zwei oder drei davon löst, behält das Muster.
Python
def fizzBuzz(n):
# Schreibe hier den CodeFall 1
Fall 2
Eingabe
arg1 = 15
Erwartet
"FizzBuzz"