For when someone asked you to do something you've done before, you can argue that the quickest way to do it is to just take the work someone else did and utilize that. No reason to reinvent the wheel.
Details
Multiples of 3
are shown as "Fizz"
; multiples of 5
as "Buzz"
;
multiple of both (i.e., 15
) are "FizzBuzz"
.
fizzbuzz_lazy()
subsets the .fizzbuzz_vector
object, which is a solution
with default parameters up to 1e6
Examples
fizzbuzz(15)
#> [1] "1" "2" "Fizz" "4" "Buzz" "Fizz"
#> [7] "7" "8" "Fizz" "Buzz" "11" "Fizz"
#> [13] "13" "14" "FizzBuzz"
fizzbuzz(30, show_numbers = FALSE)
#> [1] "" "" "Fizz" "" "Buzz" "Fizz"
#> [7] "" "" "Fizz" "Buzz" "" "Fizz"
#> [13] "" "" "FizzBuzz" "" "" "Fizz"
#> [19] "" "Buzz" "Fizz" "" "" "Fizz"
#> [25] "Buzz" "" "Fizz" "" "" "FizzBuzz"
cat(fizzbuzz(30), sep = "\n")
#> 1
#> 2
#> Fizz
#> 4
#> Buzz
#> Fizz
#> 7
#> 8
#> Fizz
#> Buzz
#> 11
#> Fizz
#> 13
#> 14
#> FizzBuzz
#> 16
#> 17
#> Fizz
#> 19
#> Buzz
#> Fizz
#> 22
#> 23
#> Fizz
#> Buzz
#> 26
#> Fizz
#> 28
#> 29
#> FizzBuzz
# \donttest{
# show them how fast your solution is:
if (package_available("bench")) {
bench::mark(fizzbuzz(1e5), fizzbuzz_lazy(1e5))
}
#> # A tibble: 2 × 13
#> expression min median `itr/sec` mem_alloc `gc/sec` n_itr n_gc total_time
#> <bch:expr> <bch:t> <bch:t> <dbl> <bch:byt> <dbl> <int> <dbl> <bch:tm>
#> 1 fizzbuzz(… 34.6ms 35.3ms 27.3 5.19MB 13.6 8 4 293ms
#> 2 fizzbuzz_… 596.8µs 610.5µs 1596. 38.21MB 62.9 406 16 254ms
#> # ℹ 4 more variables: result <list>, memory <list>, time <list>, gc <list>
# }