e-olymp 1288. n-значные числа

Задача:

Сколько натуральных $n$ -значных чисел начинаются с цифры $a$ или цифры $b$?

Входные данные:

Заданы три целых числа: натуральное $n$ [latex](0 \lt n \leqslant 10^6)[/latex] и целые $a$ и $b$. Все данные, как и само условие задачи, заданы в десятичной системе счисления.

Выходные данные:

Вывести количество натуральных $n$ -значных чисел, которые начинаются с цифры $a$ или цифры $b$.

Тесты:

ВВОД ВЫВОД
3 3 4  200
 1 2 2  1
 4 0 0  0
 10 9 9  1000000000

Код (Вариант 1):

Код (Вариант 2):

Решение:

Среди однозначных чисел с каждой цифры начинается только одно число.
Среди двухзначных чисел с одной цифры начинается уже десять чисел.
Среди трехзначных — сто и так далее. Легко заметить закономерность, что в количестве чисел, начинающихся с определенной цифры, единица всегда остается, а к ней приписывают $n-1$ нулей, где $n$ — количество разрядов.
Если мы ищем количество чисел начинающихся уже с двух разных цифр, то единица меняется на двойку, а количество нулей сохраняется.

Отсюда и решение задачи — последовательная проверка всех вариантов и вывод ответа.

P.S. Данное решение не проходит тесты 12-19 на сайте e-olymp. Это происходит из-за того, что в этих тестах результат — это число с большим количеством нулей, а язык Java тратит много времени на их вывод. То есть, тесты не выполняются только из-за времени работы. Решение этой задачи на языке С++ проходит без проблем все тесты.

Ссылки:

Задача на e-olymp
Решение №1 ideone
Решение №2 ideone

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *