Обложка канала

Goal Gesture программирование, IT

Новости, статьи и полезные материалы из мира IT

Goal Gesture программирование, IT

3 года назад
Открыть в
Задача на логику! В последние дни года все настолько устали, что иногда не могут решить даже простые логические задачи. Если вы тоже устали, вы не сможете решить эти задачи. А если можете — то не устали и нужно ещё устать. Уставайте вместе с нами. Спор двух программистов Один программист пришёл к другому и, немного выпив, говорит: — Загадай любое натуральное число X! — Отстань. — Нет, загадай. — Ну загадал. — А теперь придумай три любых числа от 6 до 8 включительно. — Придумал, и что дальше? — А теперь умножь своё начальное число X на первое из них, прибавь второе и отними третье. Сколько у тебя получилось? — Минутку… 164. — Ха, а я знаю, какие ты числа загадал! — Что, все четыре числа вычислил?! — Ага! — НО КАК?! Действительно, как первому программисту удалось узнать все числа, которые загадал второй? Решение: Обозначим три загаданных числа от 6 до 8 как A, B и C. Если мы сделаем всё, как написано в задаче, то получим равенство: A × X + B − C = 164. Из этого получим X: X = (164 − B + C) / A Исключаем число 7 Если A = 7, то числитель нашей дроби должен нацело делиться на 7, потому что X не может быть дробным (по условию X — натуральное число). Числа, близкие к 164, которые делятся на 7 — это 161 и 168. Чтобы получить 161 в числителе, числа B и C должны отличаться друг от друга на 3, а это невозможно, потому что максимальная разница равна 8 − 6 = 2. Чтобы получить 168 в числителе, числа B и C должны отличаться друг от друга на 4, а это тоже невозможно, потому что максимальная разница равна 8 − 6 = 2. Значит, A точно не равно 7. Запомним это. Если число A точно не 7, то оно чётное — 6 или 8. Это значит, что числитель (164 − B + C) тоже чётный, чтобы в результате деления получилось целое число. А это возможно, если числа B и C оба чётные или оба нечётные. Если числа B и C оба нечётные, то это возможно только в случае, если они оба равны 7. В этом случае −B + C = 0, и в числителе остаётся только 164, которое нам предстоит разделить на 6 или 8. Но 164 не делится нацело ни на 6, ни на 8, значит, они тоже не равны 7. Исключаем одинаковые B и C Из последнего примера мы видели, что B и С не могут быть одинаковыми в принципе, неважно, чётными или нечётными, поэтому остаются только два варианта: B = 6, C = 8 или B = 8, C = 6. Проверяем оставшиеся варианты Если B = 6 и C = 8, то в числителе получается так: (164 — 6 + 8) = 166. Но 166 не делится нацело ни на 6, ни на 8 (возможные значения A), значит, этот вариант можно исключить. Получается, что остаётся только пара B = 8 и C = 6: (164 — 8 + 6) = 162. Число 162 нацело делится только на 6: 162 / 6 = 27, значит, A = 6, а второй программист загадал число 27: X = 27 A = 6 B = 8 C = 6 Проверяем: 6 × 27 + 8 − 6 = 164. Всё сходится.