1. Главная
  2. Библиотека
  3. Высшая математика
  4. G. Я ненавижу 1111 ограничение по времени на тест1 секу...
Решение задачи на тему

G. Я ненавижу 1111 ограничение по времени на тест1 секунда ограничение по памяти на тест256 мегабайт Вам дано целое число x . Можете ли вы получить x , просуммировав некоторое количество 11,111,1111,11111,… ? (Вы можете использовать любое число среди них

  • Высшая математика
  • #Теория чисел
  • #Линейная алгебра и аналитическая геометрия
G. Я ненавижу 1111 ограничение по времени на тест1 секунда ограничение по памяти на тест256 мегабайт Вам дано целое число x . Можете ли вы получить x , просуммировав некоторое количество 11,111,1111,11111,… ? (Вы можете использовать любое число среди них

Условие:

G. Я ненавижу 1111
ограничение по времени на тест1 секунда
ограничение по памяти на тест256 мегабайт
Вам дано целое число x
. Можете ли вы получить x
, просуммировав некоторое количество 11,111,1111,11111,…
? (Вы можете использовать любое число среди них любое количество раз).

Например,

33=11+11+11
144=111+11+11+11
Входные данные
Первая строка ввода содержит одно целое число t
(1≤t≤10000)
— количество наборов входных данных.

Первая и единственная строка каждого набора входных данных содержит одно целое число x
(1≤x≤109)
— число, которое вы должны получить.

Выходные данные
Для каждого набора входных данных вы должны вывести одну строку. Если вы можете получить x
, выведите «YES» (без кавычек). В противном случае выведите «NO».

Вы можете вывести каждую букву из «YES» и «NO» в любом регистре (верхнем или нижнем).

Пример
Входные данныеСкопировать
3
33
144
69
Выходные данныеСкопировать
YES
YES
NO
Примечание
Cпособы получения 33
и 144
были представлены в условии. Можно показать, что мы не можем представить 69
таким образом.

Решение:

Для решения данной задачи, нам нужно определить, можем ли мы представить число x как сумму чисел вида 11, 111, 1111, 11111, \ldots. Эти числа можно выразить в виде 10k + 10k-1 + \ldots + 100 для k ≥ 0.

Каждое из этих чисел можно записать как 11 × n, где n — это количество единиц в числе. Таким образом, мы можем использовать числа 11 и 111 для формирования суммы.

Подхо...

  1. : Если x делится на 11, то мы можем использовать только 11 для формирования суммы.

  2. : Если x не делится на 11, то мы можем проверить, можем ли мы получить остаток от деления x на 11, используя числа вида 111, 1111, \ldots.

  3. : Мы можем использовать 111 (который равен 11 × 10 + 1) и 11 для формирования суммы.

  4. Для каждого числа x:

  • Проверить, можно ли представить x как сумму 11 и 111.
  • Если x больше или равно 111, то мы можем использовать 111 и 11 для формирования суммы.
  • Если x меньше 111, проверить, можно ли получить x с помощью только 11.

Вот пример кода, который решает данную задачу:

  1. Функция проверяет, можем ли мы получить число x с помощью комбинации 11 и 111.
  2. Мы перебираем количество раз, которое мы можем использовать 111 (от 0 до x // 111).
  3. Для каждого количества 111 проверяем, можем ли мы получить оставшуюся часть x с помощью 11.
  4. В считываем количество тестов и сами числа, затем выводим результаты.

Этот код эффективно решает задачу в пределах заданных ограничений.

Выбери предмет