Fizz buzz

Prueba de programación

JavGuerra,

Programación

«Fizz buzz» es un ejercicio que habitualmente se usa como prueba para la selección de candidatos en programación. Su origen es un juego de niños para aprender a dividir.

Escribir un programa que muestre en pantalla los números del 1 al 100, sustituyendo los múltiplos de 3 por la palabra “fizz”, los múltiplos de 5 por “buzz” y los múltiplos de ambos, es decir, los múltiplos de 3 y 5 (o de 15), por la palabra “fizzbuzz”.

Este simple enunciado encierra toda una gama de posibilidades en su algoritmo de resolución, y en él es de importancia tanto la rapidez con la que se resuelve el problema como la optimización (u originalidad) del código.

Esta es mi propuesta de resolución en JavaScript.

let result = '1';
let x3, x5;

for (let i = 2; i <= 100; i++)
{
  result += ', ';
  x3 = i % 3 == 0;
  x5 = i % 5 == 0;

  if (x3 || x5) {
    if (x3) result += 'fizz';
    if (x5) result += 'buzz';
  } else result += i;
}

console.log (result);

Básicamente el programa comprueba en bucle si cada número del 1 al 100 es divisible por 3 ó por 5. Si no lo es, imprime el número que estoy evaluando y pasa al siguiente número, sin más comprobaciones.

Si lo es, comprueba independientemente si es divisible por 3, y si es divisible por 5, imprimiendo «fizz», «buzz» o «fizzbuzz» en el caso de ser divisible por los dos (3 y 5).

Para saber si el número que estoy evaluando es divisible por 3 o por 5, y evitar repetir operaciones de cálculo, guardo el resultado booleano del resto de las divisiones en las variables x3 y x5 que luego uso en las comprobaciones.

¿Crees que puede optimizarse más?

Comentarios

← Volver