Тема 5. Алгоритмы – анализ простейших алгоритмов

5.03 Действия над цифрами числа

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела алгоритмы – анализ простейших алгоритмов
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#7140

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

1. Складываются квадраты цифр, стоящих на нечетных позициях;

2. Складываются квадраты цифр, стоящих на четных позициях;

3. Затем в порядке возрастания записываются эти суммы.

Укажите наименьшее число, при вводе которого автомат выдает число 1026 .

Показать ответ и решение

Решение программой:

В этой задаче мы имеем автомат, который преобразует пятизначное число в новое число путём суммирования квадратов цифр на нечётных и чётных позициях, а затем формирует итоговую запись в порядке возрастания этих сумм. Чтобы перевести этот алгоритм на Python, мы начинаем с перебора всех пятизначных чисел в диапазоне от 10000 до 99999 включительно, используя цикл for n in range(10000, 100000). Каждое число сначала преобразуем в строку с помощью str(n), чтобы иметь возможность обращаться к отдельным цифрам по их индексам: индекс 0 соответствует первой цифре числа, индекс 1 — второй, и так далее до индекса 4 для пятой цифры.

Далее мы вычисляем сумму квадратов цифр на нечётных позициях, беря квадраты цифр с индексами 0, 2 и 4, и отдельно сумму квадратов цифр на чётных позициях, используя квадраты цифр с индексами 1 и 3. После этого мы формируем строку результата, соединяя меньшую из этих сумм перед большей, чтобы соблюсти порядок возрастания. Полученное число сравниваем с заданным числом 1026. Если текущее число подходит и меньше уже найденного минимального, мы обновляем переменную min_n.

# Инициализируем переменную для хранения наименьшего подходящего числа
min_n = 99999
# Перебираем все пятизначные числа от 10000 до 99999 включительно
for n in range(10000, 100000):
    # Преобразуем число в строку для обращения к отдельным цифрам по индексам
    s = str(n)
    # Вычисляем сумму квадратов цифр на нечётных позициях (индексы 0, 2, 4)
    a = int(s[0])**2 + int(s[2])**2 + int(s[4])**2
    # Вычисляем сумму квадратов цифр на чётных позициях (индексы 1, 3)
    b = int(s[1])**2 + int(s[3])**2
    # Формируем строку результата, соединяя меньшую сумму перед большей
    r = int(str(min(a, b)) + str(max(a, b)))
    # Проверяем, совпадает ли результат с заданным числом 1026 и меньше ли текущее число найденного минимального
    if r == 1026 and n < min_n:
        # Обновляем переменную min_n, если найдено меньшее подходящее число
        min_n = n
# Выводим найденное наименьшее число
print(min_n)

Решение руками:

Сумма квадратов 3 чисел принадлежит промежутку [0,243], а сумма квадратов 2 чисел промежутку [0,162]. В соответствие с этими правилами число разбивается на число 10 и 26 или 102 и 6. Раскладывая данные числа на суммы квадратов, получаем набор цифр для исходного числа {0,1,1,3,5} (второй вариант не удовлетворяет условию возрастания чисел), при этом цифры {1,3} находятся на четных позициях, а цифры {0,1,5} на нечетных. Тогда минимальное число есть 11035.

Ответ: 11035

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение

Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!