- Reto #0
- Fecha publicación enunciado: 27/12/21
- Dificultad: FÁCIL
- Origen: https://github.com/mouredev/Weekly-Challenge-2022-Kotlin/blob/main/app/src/main/java/com/mouredev/weeklychallenge2022/Challenge0.kt
Escribe un programa que muestre por consola (con un print) los números de 1 a 100 (ambos incluidos y con un salto de línea entre cada impresión), sustituyendo los siguientes:
- Múltiplos de 3 por la palabra "fizz".
- Múltiplos de 5 por la palabra "buzz".
- Múltiplos de 3 y de 5 a la vez por la palabra "fizzbuzz".
- El número si no es divisible por ninguno.
defmodule Solution do
@fizz "fizz"
@fizzdiv 3
@buzz "buzz"
@buzzdiv 5
def fizzbuzz(number) when rem(number, @fizzdiv) == 0 and rem(number, @buzzdiv) == 0 do
"#{@fizz}#{@buzz}"
end
def fizzbuzz(number) when rem(number, @fizzdiv) == 0 do
@fizz
end
def fizzbuzz(number) when rem(number, @buzzdiv) == 0 do
@buzz
end
def fizzbuzz(number) do
number
end
def run(numbers) do
numbers
|> Enum.each(fn number ->
fizzbuzz(number)
|> IO.inspect()
end)
end
end
{:module, Solution, <<70, 79, 82, 49, 0, 0, 8, ...>>, {:run, 1}}
Solution.run(1..100)
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"
31
32
"fizz"
34
"buzz"
"fizz"
37
38
"fizz"
"buzz"
41
"fizz"
43
44
"fizzbuzz"
46
47
"fizz"
49
"buzz"
"fizz"
52
53
"fizz"
"buzz"
56
"fizz"
58
59
"fizzbuzz"
61
62
"fizz"
64
"buzz"
"fizz"
67
68
"fizz"
"buzz"
71
"fizz"
73
74
"fizzbuzz"
76
77
"fizz"
79
"buzz"
"fizz"
82
83
"fizz"
"buzz"
86
"fizz"
88
89
"fizzbuzz"
91
92
"fizz"
94
"buzz"
"fizz"
97
98
"fizz"
"buzz"
:ok