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(… 20.1ms 20.9ms 46.6 5.19MB 10.4 18 4 386ms
#> 2 fizzbuzz_… 613.2µs 623.2µs 1584. 38.21MB 60.9 468 18 295ms
#> # ℹ 4 more variables: result <list>, memory <list>, time <list>, gc <list>
# }