Условие
Вычислите значение $ 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].
Для отправки комментария необходимо войти на сайт.