Estoy seguro que muchos han leído y resuelto en clásico problema fizzbuzz a continuación: una variante casi tan sencilla como la original. Pero antes me gustaría dejar claro que espero comentarios con soluciones en la mayor cantidad de lenguajes posible, empleando las técnicas que quieran y sobre todo creatividad… Este es un post para divertirse, conocer a programadores de la comunidad y embullar a los que no programan a aprender (y a los que sí lo hacen, aprender otro lenguaje 😛 ). Ya sin más rodeo (que sí, que sé que doy rodeos):

FizzBuzzBazz

Escribe una función o programa que retorne (o imprima en pantalla como te sea más fácil) una lista formada de la siguiente forma: El elemento número i (con i desde 1 hasta 100 en ese orden) es Fizz si i es múltiplo de 3, Buzz si es múltiplo de 4 y Bazz si es múltiplo de 5, en caso de ser múltiplo de una combinación de estos pues la mezcla (para i=15 pues FizzBazz) en caso de no ser múltiplo de ninguno, pues es el propio valor de i.

La lista es algo como [1,2,Fizz,Buzz,Bazz,Fizz,7,Buzz,Fizz,Bazz,…. ]

 

No vale escribir la lista a mano!

Para que se entonen, ahí les va una solución en fish:

function fbb             
    set -l r ''
    if test (math {$argv[1]}%3 ) -eq 0
        set r {$r}Fizz
    end
    if test (math {$argv[1]}%4 ) -eq 0
                        set r {$r}Buzz
    end
    if test (math {$argv[1]}%5 ) -eq 0
                        set r {$r}Bazz
    end
    if test $r -eq ''
        echo $argv[1]
    else
        echo $r
    end
end

for i in (seq 100)
    fbb $i
end

PD: los resultados de este “concurso” no sirven para clasificar al mundial de ACM 😄.