FizzBuzz sangat sederhana, bertaruh Anda bisa melakukannya mundur. Dalam tantangan ini, Anda akan diberikan panjang string FizzBuzz dan harus memberikan bilangan bulat positif yang menghasilkan string itu.
Deskripsi
Untuk memecah ini, string FizzBuzz untuk ndihasilkan oleh algoritma berikut.
Mulai dengan string kosong dan, untuk setiap i=1..n(inklusif):
- Jika
idibagi oleh3dan oleh5, tambahkanFizzBuzzke string. - Jika
ihanya dapat dibagi oleh3appendFizz. - Jika
ihanya dapat dibagi oleh5appendBuzz. - Jika
itidak dapat dibagi oleh keduanya, tambahkan representasi desimal darii.
Jadi misalnya FizzBuzz(15)adalah sebagai berikut:
12Fizz4BuzzFizz78FizzBuzz11Fizz1314FizzBuzz
Anda akan diberikan Length(FizzBuzz(n))dan harus menentukan n. Anda dapat mengasumsikan bahwa inputnya positif dan akan selalu menjadi panjang dari beberapa string FizzBuzz.
Aturan
Solusi Anda dapat berupa program lengkap atau definisi fungsi dalam bahasa apa pun yang dapat diterima secara standar. Program / fungsi Anda dapat menerima argumen dan mengembalikan jawaban dengan cara apa pun yang diterima secara standar . Celah standar dilarang.
Anda dapat mengasumsikan bahwa inputnya positif dan valid (menggambarkan panjang beberapa string FizzBuzz) dan lebih kecil dari integer terbesar yang dapat diwakili secara asli dalam bahasa Anda.
Ini adalah kode golf, jadi byte-count paling pendek menang.
Contohnya
Berikut adalah beberapa contoh kasus
Length(FizzBuzz(n)) -> n
1 -> 1
6 -> 3
15 -> 6
313 -> 100
3677 -> 1001
Edit
Memperbaiki kasus tes terakhir. Terima kasih @SteadyBox.