Присоединиться

11 класс·средний уровень

Например, маске 123*4?5 соответствуют числа 123405 и 12300405.Среди

Условие

Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:— символ «?» означает ровно одну произвольную цифру;— символ «» означает любую последовательность цифр произвольной длины; в том числе «» может задавать и пустую последовательность.

Например, маске 1234?5 соответствуют числа 123405 и 12300405.Среди натуральных чисел, не превышающих 10¹⁰, найдите все числа, соответствующие маске 3?12?145, делящиеся на 1917 без остатка. В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — соответствующие им результаты деления этих чисел на 1917. Количество строк в таблице для ответа избыточно.

Ответ:

Ответ

Ответ и полный разбор откроются после входа

Посмотреть ответ

Решение по шагам

  1. Как рассуждать

    Решение. Будем последовательно рассматривать каждое целое число, кратное 1917, затем каждое число проверять на соответствие маске. Приведём решение на языке Python. from fnmatch import for x in range(0, 10**10, 1917): # Перебираем все числа от 0 с шагом 1917, будут получены числа кратные 1917 if fnmatch(str(x), '3?12?145'): # Проверяем полученное число соответствию заданию print(x, x//1917) В результате работы программа должна вывести следующее:351261495 1832353212614035 16758553412614645 17801853712414275 19365753912414885 2040905 Приведём решение Юрия Красильникова на языке Python. from itertools import productd='0123456789'twod=[''.join(x) for dl in range(3) for x in product(d,repeat=dl)]a=sorted([int(f'3{x}12{y}14{z}5') for x in d for y in d for z in twod])for y in [x for x in a if x%1917==0]: print(y,y//1917) Приведём решение Сергея Донец на PascalABC.NET:beginforeach var x in Range(1917, 10**10,

Осталось ещё 1 шаг

  1. Шаг 2

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Обработка целочисленной информации»