Решение на Да си приготвим нещо за хапване от Борислав Статев

Обратно към всички решения

Към профила на Борислав Статев

Резултати

  • 6 точки от тестове
  • 0 бонус точки
  • 6 точки общо
  • 10 успешни тест(а)
  • 0 неуспешни тест(а)

Код

def prepare_meal(number):
meal = ""
if number % 3 == 0:
while number % 3 == 0:
meal += "spam "
number = number / 3
if number % 5 == 0:
meal += "and eggs"
else: meal = meal.rstrip(' ')
elif number % 5 == 0:
meal += "eggs"
return meal

Лог от изпълнението

..........
----------------------------------------------------------------------
Ran 10 tests in 0.001s

OK

История (1 версия и 3 коментара)

Борислав обнови решението на 08.03.2012 18:58 (преди над 12 години)

+def prepare_meal(number):
+ meal = ""
+ if number % 3 == 0:
+ while number % 3 == 0:
+ meal += "spam "
+ number = number / 3
+ if number % 5 == 0:
+ meal += "and eggs"
+ else: meal = meal.rstrip(' ')
+ elif number % 5 == 0:
+ meal += "eggs"
+ return meal

Твърде многото скоби не отговарят на стила на Python.

Освен това виждам едно малко парче код, което се повтаря и в цикъла, и извън него. Сигурен съм, че това повторение може да се избегне.

Мерси Орльо прав си. Не знаеш, че в Python има и деление с //. Ако са правили тестове с толкова големи числа вярно ще ми гръмнат.

(9999999999999999999999/3) % 3 == 0 False

Проблем има при число с повече от 17 цифри.