Наименьшая возможная сумма двух чисел, образованных из цифр четырёхзначного числа

Отсортируйте четыре цифры и поставьте две наименьшие в разряд десятков, остальные — в единицы. Минимальная сумма равна 10·(a+b)+c+d для a≤b≤c≤d.

Короткий ответ

Что ответить на собеседовании

Отсортируйте четыре цифры и поставьте две наименьшие в разряд десятков, остальные — в единицы. Минимальная сумма равна 10·(a+b)+c+d для a≤b≤c≤d.

Подробный разбор

Ответ с пояснениями

Условие

Дано четырехзначное целое value. Требуется разбить его цифры на две группы (каждая из групп содержит хотя бы одну цифру), произвольно переставить цифры внутри групп и из полученных последовательностей сформировать два новых числа. Необходимо найти минимальную сумму этих двух чисел. Ведущие нули допускаются, однако каждая из четырёх цифр должна быть использована ровно один раз.

Пример 1: Ввод: value = 2932 Вывод: 52 Объяснение:

  • Цифры: 2, 9, 3, 2.
  • Делим и переставляем: 23 и 29.
  • Сумма: 23 + 29 = 52.
  • Это минимальная возможная сумма (например, 2 + 329 = 331 — больше).

Пример 2: Ввод: value = 4009 Вывод: 13 Объяснение:

  • Цифры: 4, 0, 0, 9.
  • Делим и переставляем: 4 и 009 (009 эквивалентно 9, так как ведущие нули не влияют на значение).
  • Сумма: 4 + 9 = 13.
  • Это минимальная возможная сумма (например, 40 + 09 = 49 — больше).

Пример 3: Ввод: value = 1000 Вывод: 1 Объяснение:

  • Цифры: 1, 0, 0, 0.
  • Делим и переставляем: 1 и 000 (000 равно 0).
  • Сумма: 1 + 0 = 1.
  • Это минимальная возможная сумма (например, 10 + 00 = 10 — больше).

Ответ

Отсортируйте четыре цифры и поставьте две наименьшие в разряд десятков, остальные — в единицы. Минимальная сумма равна 10·(a+b)+c+d для a≤b≤c≤d.

Реализация:

def minimum_sum(value):
    if type(value) is not int or not 1000 <= value <= 9999:
        raise ValueError('Expected four-digit positive integer')
    a, b, c, d = sorted(map(int, str(value)))
    return 10 * (a + b) + c + d

Для 2932 получается 52, для 4009 — 13, для 1000 — 1. Ведущие нули разрешены. Разбиение 3+1 не улучшит результат: дополнительный старший разряд имеет больший вес; при нулевой старшей цифре возможна лишь та же минимальная сумма.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее