e-olymp 8522. Делимость

Задача

Заданы два натуральных числа $a$ и $b$. Проверьте, делится ли $a$ на $b$.

Входные данные: Два натуральных числа $a$ и $b$ $(1 \le a, b \le 10^9)$

Выходные данные: Если $a$ не делится на $b$ нацело, вывести в одной строке частное и остаток от деления $a$ на $b$. Иначе вывести "Divisible".

Тесты

$a$ $b$ Вывод программы
15 3 Divisible
12 7 1 5
15 23 0 15
1000000000 889879 1123 665883

Решение

Для вычисления неполного частного и остатка от деления воспользуемся встроенными в язык операторами / и % соответственно.

Код (Ветвления)

Типа данных int по заданным в условии ограничениям хватит для реализации.

Код (Линейные вычисления)

Для решения задачи без условных операторов будем использовать следующий костыль трюк: при вычислении логических операций C++ проводит оптимизацию. Таким образом если в операции «И» первый аргумент уже false, то следующий аргумент даже не вычисляется.

Ссылки

Задача на E-Olymp
Код на IdeOne (Ветвления)
Код на IdeOne (Линейные вычисления)
Засчитанное решение на E-Olymp

Related Images:

5 thoughts on “e-olymp 8522. Делимость

    • Спасибо за подсказку! Исправил.

    • Хорошо. Зачтено.
      Теперь нужно придумать какой-то трюк, чтобы сделать ещё один вариант кода в котором формально не используется условный оператор или тернарная операция.

    • Подумал. Придумал. Исправил)

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