• Найдите наименьшее натуральное число, которое нужно подать на
    вход алгоритма, чтобы в результате были выведены числа 3 и 7.

    question img

Ответы 3

  • Спасибо, смог разобраться
  • Опечатка, 79
  • ----

    Пока N > 0

    S := S + N mod 10

    N := N div 10

    ----

    N mod 10 - это последняя цифра числа N,

    N div 10 - это результат отбрасывания последней цифры из N,

    т.е. в результате S будет содержать сумму цифр N

    Сама же программа считает сумму цифр числа S, затем сумму цифр получившегося числа, и т.д., пока не получится одна цифра.

    Кажется, такую цифру называют "цифровым корнем" числа, но на самом деле в десятичной системе счисления это просто остаток от деления на 9.

    (поскольку (10*a + b) mod 9 = (9*a + a + b) mod 9 = (a+b) mod 9)

    Для вывода 0 и 7 на вход надо подать число S = 7

    Для вывода 1 и 7 на вход нужно подать число >= 10 с суммой цифр = 7, минимальным таким числом является 16.

    Для вывода 2 и 7 на вход нужно подать такое число, что если сумму его цифр передать на вход, будет выведено 1 и 7. Т.е. сумма цифр будет по крайней мере не меньше 16, значит само число не меньше 79 (это наименьшее число, сумма цифр которых >= 16).

    Для вывода 3 и 7 нужно подать число, сумма цифр которого при передаче на вход дас результат 2 и 7, т.е. сумма цифр не меньше 79, тогда само число не меньше 799999999 (наименьшее число с суммой цифр >= 79).

    Получаем, что число S = 799999999 дает требуемый вывод, и не существует чисел меньше, которые бы тоже давали такой результат (показано ранее + можно дополнительно проверить программно, перебирая всевозможные S, занимает несколько минут).

    • Автор:

      skyqleo
    • 5 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years