Setelah banyaknya (dua?) Tantangan terkait FizzBuzz yang baru-baru ini diposting di PPCG, saya tergoda untuk membuat sendiri. Melihat...
Fizz Buzz Lightyear
Tulis program atau fungsi yang mengambil bilangan bulat ndan mencetak FizzBuzzangka berapa pun yang dapat dibagi 15, Fizzuntuk angka apa pun yang dapat dibagi 3, dan Buzzuntuk angka apa pun yang habis dibagi 5, hingga (dan termasuk) n. Output untuk semua iharus diikuti oleh baris baru. Tapi ada twist!
Untuk setiap ketiga kalinya Anda mencetak Buzz, Buzz Lightyear akhirnya mengindahkan panggilan Anda dan crash mendarat di program Anda. Dia kemudian memperkenalkan dirinya - tetapi karena dia crash mendarat, beberapa dari apa yang dia katakan dicampur dengan output program Anda:
Buzz Lightyear, Space Ranger, Universe Protection Unit.
FizzBuzz Lightyear, Space Ranger, Universe Protection Unit.
(Yaitu, hanya menambahkan Lightyear, Space Ranger, Universe Protection Unit.ke Buzzatau FizzBuzz- apa pun itu Anda akan ditampilkan sebaliknya. Perhatikan ruang terkemuka)
Namun, Buzz Lightyear, sebagai Space Ranger dia, memiliki pendengaran yang sangat akut, sehingga pencetakan FizzBuzzakan diperhitungkan dalam Buzzhitungan Anda .
Lalu, Buzz bertahan untuk melindungi komputer Anda dari semua keluaran jahat itu, hingga Anda menekan nomor lain yang dapat dibagi 5 (atau 15, karena itu juga dapat dibagi 5,). Apa artinya itu sampai Anda harus mencetak Buzz(atau FizzBuzz) lagi, Anda tidak mencetak apa pun.
Ketika Anda akhirnya mencapai kondisi itu, Buzz berangkat:
To infinity and beyond!
Contoh Output
Ini adalah output yang diharapkan untuk n = 25: (perhatikan bagaimana ia melompati 16 hingga 19)
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
Aturan
Newline tambahan opsional dapat diterima.
Ini adalah kode golf; dengan demikian, kode terpendek, dalam byte, menang.
Asumsikan yang diberikan nvalid dan lebih besar dari atau sama dengan 15 (saat itulah tantangan pertama menyimpang dari fizzbuzz standar)
Buzz menyambut Anda ketika "penghitung Buzz" (yang menghitung keduanya Buzzdan FizzBuzz) mencapai 3; dia pergi ketika yang berikutnya Buzz(termasuk, lagi, keduanya Buzzdan FizzBuzz) dicetak.
Jumlah keberangkatannya tidak diperhitungkan ke "Buzz counter" berikutnya; Anda harus mulai menghitung Buzzes lagi dari 0. Misalnya, program yang berjalan dengan n = 25(contoh keluaran) harus diakhiri dengan "Buzz counter" dari 1, karena itulah berapa kali Buzzdicetak sejak terakhir kali ia pergi.
Jika njatuh di antara salah satu kedatangan Buzz dan salah satu keberangkatannya (yaitu, dia masih di sana - Anda tidak mencetak apa-apa), penghentian yang anggun diharapkan. Oleh karena itu, baris terakhir dari output akan menjadi perkenalannya
Celah standar dilarang.
nberada di antara kedatangan Buzz Lightyear dan kepergiannya?