Hace poco, en una entrevista de trabajo me pusieron este test:
La «prueba Fizz Buzz» es una pregunta de la entrevista diseñada para ayudar a filtrar el 99,5% de los candidatos de trabajo de programación que parece que no puede programar su salida sin que haga aguas por todos lados. El texto es el siguiente:
Escribir un programa que imprima los números del 1 al 100:
* Para múltiplos de tres debe imprimir »Fizz« en lugar del número.
* Para los múltiplos de cinco debe imprimir »Buzz«.
* Para los números que son múltiplos de tres y cinco debe imprimir »FizzBuzz«.
La verdad es que me pilló de sorpresa porque la solución me pareció bastante trivial:
1 2 3 4 5 6 7 8 9 10 11 |
for n in range(1, 101): line = "" if n%3 == 0: line = line + "Fizz" if n%5 == 0: line = line + "Buzz" if line: print line else: print n |
Yo lo hice en PHP así, bastante similar a la anterior:
1 2 3 4 5 6 7 8 9 10 |
<?php for ($i = 1; $i <= 100; $i++) { $str = ""; if (!($i % 3)) $str = "Fizz"; if (!($i % 5)) $str .= "Buzz"; echo (empty($str)) ? $i : $str; } ?> |
Aunque he visto otras formas:
1 2 3 |
<?php for($i = 1; $i <= 100 and print(($i % 15 ? $i % 5 ? $i % 3 ? $i : 'Fizz' : 'Buzz' : 'FizzBuzz') . "\n"); ++$i); ?> |
Y vosotros… ¿Cómo lo habríais hecho?
Comments are closed.