Nach den vielen (zwei?) FizzBuzz-bezogenen Herausforderungen, die kürzlich auf PPCG veröffentlicht wurden, war ich versucht, meine eigenen zu entwickeln. Erblicken...
Fizz Buzz Lightyear
Schreiben Sie ein Programm oder eine Funktion, die eine Ganzzahl verwendet nund FizzBuzzfür jede durch 15 teilbare Zahl, Fizzfür jede durch 3 teilbare Zahl und Buzzfür jede durch 5 teilbare Zahl bis (einschließlich) druckt n. Auf die Ausgabe für alle imuss eine neue Zeile folgen. Aber es gibt eine Wendung!
Bei jedem dritten Druck Buzzbeachtet Buzz Lightyear endlich Ihren Anruf und stürzt in Ihrem Programm ab. Dann stellt er sich vor - aber seit er abgestürzt ist, wird einiges von dem, was er gesagt hat, mit der Ausgabe Ihres Programms verwechselt:
Buzz Lightyear, Space Ranger, Universe Protection Unit.
FizzBuzz Lightyear, Space Ranger, Universe Protection Unit.
(das heißt, nur Lightyear, Space Ranger, Universe Protection Unit.an Buzzoder anhängen FizzBuzz- was auch immer Sie sonst angezeigt hätten. Beachten Sie das führende Leerzeichen)
Buzz Lightyear ist jedoch der Space Ranger, der er ist, und hat ein sehr akutes Gehör. Daher zählt das Drucken FizzBuzzzu Ihrer BuzzZählung .
Dann bleibt Buzz herum, um Ihren Computer vor all diesen bösen Ausgaben zu schützen, bis Sie eine andere Zahl treffen, die durch 5 teilbar ist (oder 15, da diese auch durch 5 teilbar sind). Das heißt, bis Sie erneut drucken Buzz(oder FizzBuzz) müssen, drucken Sie überhaupt nichts.
Wenn Sie diesen Zustand erreicht haben, geht Buzz:
To infinity and beyond!
Beispielausgabe
Dies ist die erwartete Ausgabe für n = 25: (Beachten Sie, wie 16 bis 19 übersprungen werden)
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz Lightyear, Space Ranger, Universe Protection Unit.
To infinity and beyond!
Fizz
22
23
Fizz
Buzz
Regeln
Optionaler nachfolgender Zeilenumbruch ist zulässig.
Das ist Code Golf; als solches gewinnt der kürzeste Code in Bytes.
Angenommen, die angegebene nist gültig und größer oder gleich 15 (wenn die Herausforderung zum ersten Mal vom Standard-Fizzbuzz abweicht).
Buzz begrüßt Sie, wenn der "Buzz Counter" (der sowohl zählt Buzzals auch FizzBuzz) 3 trifft; Er fährt ab, wenn das nächste Buzz(einschließlich Buzzund FizzBuzz) gedruckt wird.
Die Nummer, in der er abreist, zählt nicht für den nächsten "Buzz Counter"; Sie sollten stattdessen erneut mit dem Zählen der Buzzes von 0 beginnen. Beispielsweise sollte ein Programm, das mit n = 25(Beispielausgabe) ausgeführt wird, mit einem "Buzz-Zähler" von 1 enden, da so oft Buzzseit seiner letzten Abreise gedruckt wurde.
Falls nzwischen einer der Ankünfte von Buzz und einer seiner Abflüge liegt (dh er ist immer noch da - Sie drucken nichts), wird eine ordnungsgemäße Kündigung erwartet. Daher wäre die letzte Ausgabezeile seine Einführung
Standardlücken sind verboten.
nzwischen der Ankunft von Buzz Lightyear und seiner Abreise klären ?