Условие
Вычислите значение $ y $ в соответствии со следующим условием:
[latex] y=\begin{cases}x^{2} — 3x +4 , x<5\\x + 7 , x\geq 5\end{cases} [/latex]Входные данные:
Одно целое число [latex] x (-1000\leq x\leq 1000) [/latex].
Выходные данные
Выведите значение $ y $ в соответствии с заданным условием.
Тесты
№ | входные данные | выходные данные |
---|---|---|
1 | 2 | 2 |
2 | 10 | 17 |
3 | 15 | 22 |
4 | 32 | 39 |
Решение
1 2 3 4 5 6 7 8 9 10 11 |
#include <iostream> using namespace std; int main() { int y, x; cin>> x; if (x<5) y=(x*x)-3*x+4; else y=x+7; cout <<y; return 0; } |
Решение этой задачи довольно простое. Мне потребовалось создать условие, где если $ x $ меньше пяти, то [latex]y=x^{2}-3x+4 [/latex] , а для $ x $ больше или равняется пяти [latex]y=x+7 .[/latex]
Без условного оператора :
Решение I
1 2 3 4 5 6 7 8 9 10 |
#include <iostream> using namespace std; int main() { int y, x; cin>> x; (x<5) && (cout <<(x*x)-3*x+4); (x>=5) && (cout <<(x+7)); return 0; } |
Используем логический оператор $ && $ так как он не вычисляет второе условие, если первое ложно.
Решение II
1 2 3 4 5 6 7 8 9 10 |
#include <iostream> using namespace std; int main() { int y, x; cin>> x; x<5? y=(x*x)-3*x+4:y=x+7; cout <<y; return 0; } |
Для вычисления используется тернарный оператор который проверяет условие и выполняет действие [latex]y=x^{2}-3x+4 [/latex] если условие вернет истину (true) или С если условие возвращает ложь (false).
Решение III
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <iostream> using namespace std; int main() { // your code goes here int x; cin>> x; switch(x) { case -1000...4: cout <<(x*x-3*x+4); break; default: cout <<(x+7); } return 0; } |
В этом решении используется оператор множественного выбора switch, который сравнивает $ x $ со значением заложенным в case, а после выполняет действие [latex]y=x^{2}-3x+4 [/latex]. Если значения не совпадают, тогда выполняется [latex]y=x^{2}-3x+4 [/latex].
Ваше оформление не соответствует требованиям — http://cpp.mazurok.com/homework-assignment. Посмотрите задачи, которые уже размещены на сайте.
У Вас есть около 1000 примеров как оформлять работы. Несколько из них уже сделаны однокурсниками. Посмотрев любой из них, Вы сэкономили бы массу времени и себе и преподавателям. Но если не получается, то придется писать подробно.
— Уберите кириллицу из постоянной ссылки (адреса) Вашей статьи
— Сделайте название по такому образцу: «e-olymp 7401. Друзья Степана»
— Уберите всю эту боевую раскраску и стили типа class=»eo-paper__header». Это дело дизайнера сайта. Раскрашивать каждую страницу под свой вкус, неправильно. Ваше дело — контент.
— Для формул нужно освоить laTeX, а не вставлять картинки. А вы либо картинкой, либо просто текстом. Оба способа не подходят — только laTeX.
— Тесты нужно сделать в виде таблицы.
— В коде Вы выполняете проверку, что число меньше пяти. А в противном случае, проверяете вдруг оно больше либо равно пяти. А каким оно еще может оказаться?! Вторая проверка лишняя.
— Добавьте пояснение по решению задачи. Посмотрите, как это делают другие.
— Добавьте ссылку на свой код решения в IDEone.com и ссылку на задачу на сайте e-olymp.com.
— Добавьте метки (ключевые слова и словосочетания).
— Проставьте правильную категорию. Если у Вас в решении есть условный оператор, то это не может быть линейным вычислением.
Спасибо за помощь.
Решение со switch не очень уместно — тут всего одно условие.
Но хорошо, молодец. Жаль, что семестр ушел на одну задачу.
Надеюсь дальше будет быстрее.