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

e-olymp 8891. Ровно одно условие из двух

Задача

Для заданного целого числа $n$ вывести YES, если выполняется ровно одно из следующих условий и NO в противном случае.

  • число $n$ четное.
  • число $n$ отрицательное и кратное трем.

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

Одно целое число $n$.

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

Вывести YES или NO в зависимости от выполнения условий.

Тесты

ВВОД ВЫВОД
 22  YES
 7  NO
 -30  NO
 -9  YES
 0  YES

Код

 

Решение

Если оба условия выполняются или оба не выполняются, то нужно вывести «NO», а иначе  — «YES».

  • В первом случае проверяем четность числа $n$.
  • Во втором случае проверяем кратность трем и является ли $n$ отрицательным.
  • В обеих случаях исключаем варианты, когда оба условия могли бы выполнятся, то есть исключаем отрицательные числа и кратность трем для первого, и четность числа для второго случая.

Ссылки

e-olymp
ideone