10.08.2014

Функции-переключатели

by Lazy Panda — Categories: ПрограммированиеLeave a comment

Нередко меня спрашивают относительно простые, но интересные задачи для начинающих программистов, поэтому я успел накопить достаточно большое количество таких вот головоломок. То, что я предложу ниже – одна из моих самых любимых. Я долго не мог оформить ее в виде заметки и вот, наконец, время настало – теперь я могу просто делиться ссылкой.

Итак, в чем же суть задачи? А суть простая – нужно написать ряд несложных функций, которые заданы… Хм… назовем это, таблично. Функции имеют простые заголовки – они принимают по одному параметру целочисленного типа и возвращают такие же целочисленные числа. В контексте данных задач ограничением можно считать значения числе от 0 до 100.

  1. Прямой переключатель.

    F(0) = 0
    F(1) = 1

    Для других входных параметров значения функции непринципиальны.

  1. Инвертированный переключатель.

    F(0) = 1
    F(1) = 0

    Для других входных параметров значения функции непринципиальны.

  1. Переключатель между двумя значениями.

    F(0) = A
    F(1) = B

    Здесь впервые появляются некоторые числа Aи B. Данные числа могут иметь любые значения, единственное, что известно, что все числа, обозначенные разными буквами, имеют разные значения и все они не равны нулю. Это справедливо и для дальнейших функций. Для других входных параметров значения функции непринципиальны.

  1. Обратный переключатель между двумя значениями.

    F(A) = 0
    F(B) = 1

    Все тоже, что и раньше упоминалось.

  1. Цепочный переключатель.

    F(A) = B
    F(B) = C

  1. Универсальный переключатель.

    F(A) = B
    F(C) = D

  1. Функция сужения.

    F(0) = 1
    F(1) = 0
    F(2) = 0

    Здесь функция похожая на второй переключатель, но теперь нас уже интересует значение функции не только в указанных точках, но и во всех прочих.

  1. Обратная функция сужения (логично же).

    F(0) = 0
    F(1) = 1
    F(2) = 1

  2. Функция выбора.

    F(0) = 0
    F(1) = 0
    F(2) = 0

    F(A-1) = 0
    F(A) = 1
    F(A+1) = 0

  3. Функция упорядочивания.

    F(A) = 1
    F(B) = 2
    F(C) = 3
    F(D) = 4

    От всех прочих входных параметров значение функции вычисляется как 0.

Вот такая вот задача – не сложная ни разу, на самом деле. Ровно до одного уточнения – запрета на использование каких бы-то ни было операторов ветвления. Под запретом – if, switch, caseи иже с ними. По хорошему, не надо пользоваться тернарным оператором ?: и прочими операциями, которые работают как if, типа sign().

Успехов в решении!

Добавить комментарий для REMONTMiz Отменить ответ

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2019 [Panda Tower] All rights reserved - Powered by [WordPress] and [Wallow]