ФиззБазз Когда я подал заявку на вступление Хакерская школа , я столкнулся со следующей проблемой:
Напишите программу, печатающую числа от 1 до 100 (включительно).(Сотрудники Хакерской школы с тех пор немного изменили проблему, скорее всего, чтобы затруднить ее решение интернет-поисковиками.Если число делится на 3, вместо числа выведите Fizz. Если оно делится на 5, выведите Buzz. Если оно делится и на 3, и на 5, выведите FizzBuzz. Вы можете использовать любой язык программирования.
Я намеренно не включил сюда измененное условие, чтобы минимизировать влияние моего поста на возможности Google.) Задача довольно проста и не требует размышлений, поэтому хорошо подходит в качестве примера для разных языков и стилей программирования, например Hello, World или задачи по поиску чисел Фибоначчи.
Немного не-Python Python Я снова увидел эту проблему сегодня, когда показывал другу свое приложение Hacker School, и вдруг подумал о том, сколько способов ее решения существует только в Python. Python, особенно с ПКП 8 , представляет пользователю идеальные методы написания Python. Но Python не требует Python, поэтому мне стало интересно, в каких стилях я могу писать.
Предупреждение: то, что следует дальше, совершенно не в духе Python. Однако код должен работать (с версией Python 2.7.5).
Присылайте мне свои комментарии или твиты с исправлениями ошибок или дополнениями.
Питон Питон
Лисп Питонdef fizzbuzz(number): if number % 3 == 0 and number % 5 == 0: return 'FizzBuzz' elif number % 3 == 0: return 'Fizz' elif number % 5 == 0: return 'Buzz' else: return number for number in range(1, 101): print fizzbuzz(number)
fizzbuzz = lambda n: 'FizzBuzz' if n % 3 == 0 and n % 5 == 0 else None
fizz = lambda n: 'Fizz' if n % 3 == 0 else None
buzz = lambda n: 'Buzz' if n % 5 == 0 else None
fizz_andor_maybenot_buzz = lambda n: fizzbuzz(n) or fizz(n) or buzz(n) or str(n)
print reduce(lambda m,n: m+'\n'+n, map(fizz_andor_maybenot_buzz, range(1, 101)))
Java Питон
import sys
class Value(object):
def __init__(self,value):
self.setValue(value)
def setValue(self,value):
self.value = value
def getValue(self):
return self.value
def toString(self):
return self.getValue().
__str__()
class FizzBuzz(object):
def __init__(self, n):
if n % 15 == 0:
value = 'FizzBuzz';
elif n % 3 == 0:
value = 'Fizz';
elif n % 5 == 0:
value = 'Buzz';
else:
value = str(n);
self.setValue(value);
def setValue(self,value):
self.value = Value(value);
def getValue(self):
return self.value;
class FizzBuzzRunner(object):
def __init__(self, n):
self.setN(n)
def setN(self, n):
self.n = n
def run(self):
for i in range(1,self.n):
sys.stdout.write(FizzBuzz(i).
getValue().
toString()+'\n');
if __name__ == '__main__':
n = 101;
FizzBuzzRunner(n).
run()
Милый питон
def main():
i = 0;
value = '';
while i < 100:
i += 1
if i % 15 == 0:
value = 'FizzBuzz';
elif i % 3 == 0:
value = 'Fizz';
elif i % 5 == 0:
value = 'Buzz';
else:
value = str(i);
print value;
return 0;
main();
Закрытый Python
def fizzbuzz(n):
return 'FizzBuzz' if n % 3 == 0 and n % 5 == 0 else None
def fizz(n):
return 'Fizz' if n % 3 == 0 else None
def buzz(n):
return 'Buzz' if n % 5 == 0 else None
def fizz_andor_maybenot_buzz(n):
print fizzbuzz(n) or fizz(n) or buzz(n) or str(n)
map(fizz_andor_maybenot_buzz, xrange(1, 101))
Теги: #Ненормальное программирование #python #java #C++ #clojure #Lisp #стили программирования #Ненормальное программирование #python #программирование
-
Uwp – Выпуск 258
19 Oct, 24 -
Промо-Сайт: Фильм Office 2010
19 Oct, 24 -
Экслер Попался На Уловку
19 Oct, 24 -
Переход С Odac 10 На Odac 12
19 Oct, 24