Автомат получает ** вход трёхзначное число. По этому числу строится новое число по...

0 голосов
491 просмотров

Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.
1. Складываются первая и вторая, а также вторая и третья цифры исходного числа.
2. Полученные два числа записываются друг за другом в порядке убывания (без разделителей).
Пример. Исходное число: 348. Суммы: 3 + 4 = 7; 4 + 8 = 12. Результат: 127. Укажите наименьшее число, в результате обработки которого автомат выдаст число 1412.


Информатика (21 баллов) | 491 просмотров
Дан 1 ответ
0 голосов

Способ получить 14 с наименьшей цифрой - 9 и 5, а 12 - 9 и 3. Ставим 3 впереди, имем 395.

Следующий код на Python это подтверждает:

def change_3dig():
    n = 100
    while n < 1000:
        digits = (n // 100,
                  n % 100 // 10,
              n % 10)
        sums = (digits[0] + digits[1],
                digits[1] + digits[2])
        res = str(max(sums)) + \
          str(min(sums))
        yield (n, int(res))
        n += 1

ans = [(n1, n2) for n1, n2 in change_3dig() if n2 == 1412]
print(min(ans))

Вывод:
(395, 1412)

(7.2k баллов)