Задача про номер дома

Задача про номер дома

Диалог программистов с зубодробительной логикой

На обеденном перерыве, когда было совсем жарко, один программист решил поиздеваться над другим. Он сказал:

— Я загадал два разных числа от 1 до 9, сможешь угадать их сумму?

— Да ну, ты чего, там же куча вариантов.

— Окей, дам подсказку: последняя цифра в произведении моих чисел такая же, как номер моего дома.

— Так я же не знаю номер твоего дома. Хотя подожди, я понял!

И второй программист сразу же назвал сумму двух загаданных чисел. Как он это сделал?

Так как второй программист понял, как решить эту задачу только после информации о произведении чисел, сделаем то же самое: посмотрим, чему равно произведение всех чисел от 1 до 9:

Задача про номер дома

Раз нам всё равно, в каком порядке первый программист загадал свои числа, а важен только результат умножения, то мы отбросим половину значений — а всё потому, что 2 × 6 = 6 × 2. Поэтому убираем нижнюю половину таблицы — она дублирует верхние значения:

Задача про номер дома

В условии сказано, что первый программист загадал разные числа, поэтому диагональ с результатами тоже можно отбросить — там результат умножения одинаковых чисел:

Задача про номер дома

Так как последняя цифра в результате произведения совпадает с номером дома первого программиста, можно сделать вывод, что номер дома — однозначное число от 1 до 9 (потому что нумерация домов начинается с единицы, а не с нуля). 

Теперь самая нудная часть решения: нам нужно по очереди сравнить все числа от 1 до 9 с последними цифрами произведений, и если таких результатов будет больше одного — отбросить их. Дело в том, что второй программист сразу понял ответ, а это можно сделать, только когда вариантов решения не больше одного.

Для примера подробно разберём число 1: находим все результаты произведений, которые заканчиваются на единицу:

Задача про номер дома

Такой результат у нас только один — это число 21. Кажется, что мы сразу нашли верный ответ, но вдруг нет? Нужно точно так же проверить все остальные числа — возможно, будет ещё такое уникальное произведение.

Проверяем двойку:

Задача про номер дома

А здесь у нас получилось сразу много произведений с двойкой на конце, поэтому все эти результаты можно отбрасывать как неверные (они не дают однозначного ответа). Точно так же проверим всё остальное и вычеркнем неоднозначные результаты.

Проверяем тройку:

Задача про номер дома

Проверяем четвёрку:

Задача про номер дома

Проверяем пятёрку:

Задача про номер дома

Проверяем шестёрку:

Задача про номер дома

Проверяем семёрку:

Задача про номер дома

Проверяем восьмёрку:

Задача про номер дома

Проверяем девятку: у неё тоже один результат, поэтому тоже оставляем его как один возможных.

Задача про номер дома

А всё, что заканчивается на ноль, тоже убираем — у нас нет ноля среди загаданных чисел:

Задача про номер дома

Итак, у нас остались всего два числа: 9 и 21, и по идее нам нужно как-то выбрать одно из них, чтобы найти исходную пару чисел и выяснить их сумму. Но давайте посмотрим на то, произведение каких чисел даёт эти результаты:

1 × 9 = 9

3 × 7 = 21

А теперь попробуем сложить эти числа:

1 + 9 = 10

3 + 7 = 10

И там и там сумма равна 10, а значит, мы можем дать правильный ответ в любом случае: сумма загаданных чисел равна 10.

А теперь нужно перестать страдать ерундой, быстро доделать дела и пойти на речку. 

Текст:

Михаил Полянин

Редактор:

Максим Ильяхов

Художник:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Соцсети:

Виталий Вебер

Любите математику? Это для вас
Попробуйте бесплатный тренажер «Основы математики для цифровых профессий». Это все необходимые знания, чтобы закрыть пробелы в математике для айтишника.
Попробовать бесплатно
Любите математику? Это для вас Любите математику? Это для вас Любите математику? Это для вас Любите математику? Это для вас
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
Задача про тест на собеседовании
Задача про тест на собеседовании

Пришёл программист на собеседование, и началось.

medium
Реально сложные задачи

Без шуток, мы предупредили.

hard
Проверьте свою логику в задаче про самолёт

Олимпиадная задачка для пятого класса — справитесь?

easy
Головоломки для ИТ-собеседований
Головоломки для ИТ-собеседований

Четыре метода, которые помогают с решением.

easy
Задача: баг или фича?

Сколько времени потребуется программисту, чтобы запилить весь проект?

easy
Сложная задача про поросёнка и NFT
Сложная задача про поросёнка и NFT

Вы не сможете решить её правильно

easy
Сложная задача про дачу, малину и макроэкономику

Продолжение задачи про альтернативные издержки

medium
Логическая задача
Задача имени Якубовича: три шкатулки с деньгами

Интуиция обманет вас в этой задаче. Попробуйте лучше теорию вероятностей, это легко.

hard
Задача про продуктивность, в которой с первого раза ошибаются все

Задачка на арифметику, которая вас удивит

medium
Где ошибка?

Эта задача рождена, чтобы ставить вас в тупик.

medium
medium