Pierwszy kandydat
2008-02-20 | by muczachan |Bardzo defensywny i ze wszystkiego się tłumaczy. Przede wszystkim z tego, że perla ostatni raz ruszał na studiach (6 lat temu, jak wynika z CV) i trochę mu się może mieszać. Na rozgrzewkę dostaje FizzBuzza. Czyli mały programik do napisania.
Wypisz liczby od 1 do 100, w osobnych liniach. Zamiast liczb podzielnych przez 3 wypisz “Fizz”, zamiast liczb podzielnych przez 5 wypisz “Buzz” a zamiast liczb podzielnych przez 15 wypisz “FizzBuzz”.
Ma pokazać, czy jest po co z kandydatem dalej rozmawiać. Pozwoliłem pisać w metakodzie, jeśli w perlu się czuje tak sobie. Oto wynik, przepisany z wielką dbałością o szczegóły:
declare liczby[100]
for liczby[i=1, i+1, 100]
{
liczby[i]=i
if (liczby[i]) mod 3 =
then x="Fizz"
pritn(x)
if (liczby[i] mod 5 = ?
then y="Buzz"
print(y)
if (liczby[i]) mod 15
then printf(x;y)
Niestety nie wolno mi przerwać rozmowy. Więc przez następne 40 minut porozmawialiśmy sobie o jego doświadczeniach, celach, dokonanych wyborach, osiągnięciach i innych tematach zastępczych.
3 Responses to “Pierwszy kandydat”
By saddie on 2008-02-21 | Reply
Boli.
*idzie napisać fizzbuzza*
By Jubal on 2008-02-21 | Reply
Ano boli. (Z takim samym efektem u mnie; wcześniej mi się nie chciało :->)
By Tener on 2008-11-02 | Reply
W Haskellu, lepsze od pseudokodu:
fb = mapM_ putStrLn . map fizzbuzz $ [1..100] where
fizzbuzz x | x `mod` 15 == 0 = “fizzbuzz”
| x `mod` 5 == 0 = “buzz”
| x `mod` 3 == 0 = “fizz”
| otherwise = show x