Решение на Да си приготвим нещо за хапване от Дейвид Танков

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

Към профила на Дейвид Танков

Резултати

  • 5 точки от тестове
  • 0 бонус точки
  • 5 точки общо
  • 9 успешни тест(а)
  • 1 неуспешни тест(а)

Код

def prepare_meal( number ):
text = ""
if number % 3 == 0:
while number % 3 == 0:
text = text + "spam"
number = number // 3
if number % 3 == 0:
text = text + " "
if number % 5 == 0:
text = text + " and "
while number % 5 == 0:
text = text + "eggs"
number = number // 5
if number % 5 == 0:
text = text + " "
return( text )

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

.F........
======================================================================
FAIL: test_eggs_with_additional_egg_multipliers (__main__.FirstHomeworkTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/test20120506-8116-r6fob1", line 22, in test_eggs_with_additional_egg_multipliers
    self.assertEqual('eggs', self.solution.prepare_meal(5**4))
AssertionError: 'eggs' != 'eggs eggs eggs eggs'
- eggs
+ eggs eggs eggs eggs


----------------------------------------------------------------------
Ran 10 tests in 0.002s

FAILED (failures=1)

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

Дейвид обнови решението на 08.03.2012 18:58 (преди над 8 години)

+def prepare_meal( number ):
+ text = ""
+ if number % 3 == 0:
+ while number % 3 == 0:
+ text = text + "spam"
+ number = number // 3
+ if number % 3 == 0:
+ text = text + " "
+ if number % 5 == 0:
+ text = text + " and "
+ while number % 5 == 0:
+ text = text + "eggs"
+ number = number // 5
+ if number % 5 == 0:
+ text = text + " "
+ return( text )

Евала, че си ползвал //. Хубаво е да ползваш оператора за целочислено делене, когато така или иначе знаеш, че числото ти се дели без остатък, тъй като 3 ** 700 / 3 възбужда OverflowError.