e-olymp 8521. Условный оператор — 2

Задача

Вычислите значение y в соответствии со следующим условием:

[latex]y=\begin{cases}x^{3} + 5x, x\geq 10\\\ x^{2} — 2x + 4 , x < 10\end{cases}[/latex]

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

Одно целое число  [latex] x(-10000 ≤ x ≤ 10000)[/latex].

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

Выведите значение y в соответствии с заданным условием.

Тесты

Ввод Вывод
1 2 4
2 20 8100
3 100 1000500
3 -5 39

Программы с ветвлением

Решение

Используем тернарный оператор для проверки [latex]x\geq 10[/latex].

Ссылки

Линейные вычисления

Решение

Используем логический оператор &&  так как он не вычисляет второе условие, если первое ложно.

Ссылки

10 thoughts on “e-olymp 8521. Условный оператор — 2

  1. Формулы стоит оформлять в условии в laTeX и не стоит брать в тег strong. К тому же в конце предложений в русском языке обычно ставится точка.

        • Последняя закрывающая фигурная скобка в Вашем коде очевидна, но без неё компилятор выдаст ошибку.
        • Последний оператор return 0; тоже вполне очевиден. Но Вы его написали. Однако с некоторых пор его разрешили опускать.
          К чему это я? В программировании далеко не все логично. Можно смириться, можно инициировать процесс внесения изменений в стандарт языка (если готовы потратить на этот процесс 5-10 лет). Правильнее всего следовать текущим правилам, но инициировать процесс их изменения.
          В Вашем случае правильно было бы точку поставить и начать продвигать через Волгина изменения в языке.
  2. И кроме того
    — Уберите, пожалуйста, символы кириллицы в адресе.
    — После удаления 12-й, 14-й и 16-й строки код станет только лучше.
    — А Вы не знаете другого способа возвести число в квадрат и в куб, кроме частичных сумм в разложении в ряд Тейлора? 🙂

        • Основное замечание было у Николь. Я только добавил. Жаль, что Вы не прислушались, приходится повторять — все формулы должны быть в laTeX. Не картинкой, не HTML, а laTeX.
          Поскольку Вы первое сентябрьское задание начали выполнять под Новый Год за три дня перед экзаменом, у нас не будет времени на личные встречи по этому поводу. Попробуйте посмотреть для образца на работы других студентов и почитать вопросы и ответы.
        • Теперь по коду. Чтобы вычислить квадрат числа лучше всего его умножить на самого себя x*x. Аналогично с кубом — x*x*x. Если бы Вы так поступили, то никаких вопросов бы не возникло. Но Вы написали общую функцию возведения в целую степень. А реализована она неприемлемо. Посмотрите эту статью на сайте чтобы переделать или просто перемножьте.
        • Я писал функцию только для возведения x в третью и вторую степень именно для этой задачи, а не общую. Как по мне, так выглядит лучше и читабельнее чем x*x и x*x*x. Если б заданием было написать общую функцию, то я б ее реализовал по другому. Btw переделано на x*x и x*x*x. Что касается замечания Николь, я решил опубликовать уже исправленные комментарии, а потом приступить к latex, но спасибо что повторили

          • Пока работа не окончена, пожалуйста, не ставьте галочку в разделе «Ожидает проверки». Я не буду видеть такую работу.
          • Достаточно тонкий вопрос, стоит ли писать отдельную функцию для одного или двух умножений. Зависит от ситуации. Но я остаюсь при своем мнении — если делаете функцию, она должна быть само совершенство 🙂
  3. Зачтено.
    Теперь, несмотря на говорящее название, нужно каким-то трюком решить задачу без использования ветвления.
    Просто упражнение.
    Если удастся добавить такой вариант кода, то отметьте раздел «Линейные вычисления» и ставьте снова на проверку.

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