8.02 Подсчет количества слов/чисел
Ошибка.
Попробуйте повторить позже
Гоша составляет восьмизначные числа. Причём рядом не должны стоять цифры с одинаковым остатком от деления на 5, а также на последнем месте может быть только чётная цифра. Сколько чисел может составить Гоша?
Решение руками
На первое место можем поставить любую из цифр кроме 0, остаётся 9 цифр.
На каждое последующее место, кроме предпоследнего, можем поставить 8 цифр, так как рядом с каждым с любой цифрой не может стоять она сама и вторая цифра с таким же остатком (возможных остатков от деления на 5 всего 5 штук: 0, 1, 2, 3, 4; каждый из них имеют ровно две цифры, например остаток 0 имеют 0 и 5, остаток 1 - 1 и 6 и так далее). На последнем месте может быть любая четная цифра, но также нужно исключить одну цифру с таким же остатком, поэтому их останется 4.
Итоговая формула:
Идея решения через циклы:
Мы составляем восьмизначные числа по следующим правилам: цифры не должны стоять рядом с цифрами, которые имеют одинаковый остаток от деления на 5, а последняя цифра должна быть чётной. Для этого мы выделяем три множества:
- a1 — возможные цифры для первой позиции (1–9), чтобы число не начиналось с нуля;
- a2 — возможные цифры для промежуточных позиций (0–9);
- a3 — возможные цифры для последней позиции (только чётные).
Далее организуем 8 вложенных циклов for, каждый из которых перебирает одну позицию числа. Для каждой последующей цифры проверяем, что её остаток от деления на 5 не совпадает с остатком предыдущей цифры. Если условие нарушается, используем команду continue, чтобы перейти к следующей цифре без увеличения счётчика. Когда мы достигаем последней позиции, проверяем также, что цифра чётная (a3). Если все условия соблюдены, увеличиваем счётчик cnt на 1.
Решение программой с помощью циклов
a1 = "123456789" # Возможные цифры для первой позиции (не ноль) a2 = "0123456789" # Возможные цифры для промежуточных позиций a3 = "02468" # Возможные цифры для последней позиции (только чётные) cnt = 0 # Счётчик для количества допустимых чисел # 1-я цифра числа for x1 in a1: # 2-я цифра числа for x2 in a2: if int(x1) % 5 == int(x2) % 5: # Проверяем остаток от деления на 5 continue # Если совпадает, пропускаем эту цифру # 3-я цифра числа for x3 in a2: if int(x2) % 5 == int(x3) % 5: continue # 4-я цифра числа for x4 in a2: if int(x3) % 5 == int(x4) % 5: continue # 5-я цифра числа for x5 in a2: if int(x4) % 5 == int(x5) % 5: continue # 6-я цифра числа for x6 in a2: if int(x5) % 5 == int(x6) % 5: continue # 7-я цифра числа for x7 in a2: if int(x6) % 5 == int(x7) % 5: continue # 8-я цифра числа (последняя, только чётная) for x8 in a3: if int(x7) % 5 != int(x8) % 5: # Проверяем остаток от деления на 5 cnt += 1 # Увеличиваем счётчик допустимых чисел # Выводим количество допустимых восьмизначных чисел print(cnt)
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

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

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

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

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

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!