Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Загадка [func]. Задача на Python

Гоша Скрынников Ученик (57), на голосовании 3 недели назад
Шерлок очень любит загадки. Например вот эту.Напиши функцию, которая возвращает число – правильный ответ по схеме решения этой загадки.

def answer(n):
Важно! На проверку отправляем только код функции.
Формат входных данных
Функция получает на вход целое положительное число без ведущих нулей.
Формат выходных данных
Функция возвращает число – ответ к загадке для случая введенного числа.
ВХОДНЫЕ ДАННЫЕ ВЫХОДНЫЕ ДАННЫЕ
1300 2
Голосование за лучший ответ
Мудрец (10515) 1 месяц назад
Для решения этой загадки нужно сосчитать количество замкнутых областей (или "петель") в цифрах числа. Например:
  • 0 содержит одну замкнутую область (внутри круга).
  • 6 содержит одну замкнутую область.
  • 8 содержит две замкнутые области.
  • Цифры 1, 2, 3, 4, 5, 7 и 9 не содержат замкнутых областей.

 def answer(n): 
# Словарь, который хранит количество замкнутых областей для каждой цифры
loops = {
'0': 1,
'1': 0,
'2': 0,
'3': 0,
'4': 1,
'5': 0,
'6': 1,
'7': 0,
'8': 2,
'9': 1
}

# Превращаем число в строку и суммируем количество замкнутых областей для каждой цифры
return sum(loops[digit] for digit in str(n))
Гоша СкрынниковУченик (57) 1 месяц назад
Можно пожалуйста без списков и str?
Мудрец (10515) Гоша Скрынников,
 def answer(n): 
    result = 0 
     
    while n > 0: 
        digit = n % 10  # Берем последнюю цифру числа 
         
        # Проверяем, сколько замкнутых областей у данной цифры 
        if digit == 0: 
            result += 1 
        elif digit == 6: 
            result += 1 
        elif digit == 8: 
            result += 2 
        elif digit == 9: 
            result += 1 
         
        n //= 10  # Убираем последнюю цифру числа 
         
    return result 
 
Похожие вопросы