Задача
Вычислите значение 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 |
Программы с ветвлением
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <iostream> using namespace std; long long int f(int x) { return (x >= 10) ? (x*x*x + x*5) : (x*x - 2*x + 4); } int main() { int x; cin >> x; cout << f(x) << endl; return 0; } |
Решение
Используем тернарный оператор для проверки [latex]x\geq 10[/latex].
Ссылки
Линейные вычисления
1 2 3 4 5 6 7 8 9 10 11 |
#include <iostream> using namespace std; int main() { long long int x; cin >> x; (x >= 10) && (cout << (x*x*x + x*5) << endl); (x < 10) && (cout << (x*x - 2*x + 4) << endl); return 0; } |
Решение
Используем логический оператор && так как он не вычисляет второе условие, если первое ложно.
Формулы стоит оформлять в условии в laTeX и не стоит брать в тег strong. К тому же в конце предложений в русском языке обычно ставится точка.
Думаю, в данном случае очевидно, что это конец предложения, но раз ты настаиваешь)
К чему это я? В программировании далеко не все логично. Можно смириться, можно инициировать процесс внесения изменений в стандарт языка (если готовы потратить на этот процесс 5-10 лет). Правильнее всего следовать текущим правилам, но инициировать процесс их изменения.
В Вашем случае правильно было бы точку поставить и начать продвигать через Волгина изменения в языке.
И кроме того
— Уберите, пожалуйста, символы кириллицы в адресе.
— После удаления 12-й, 14-й и 16-й строки код станет только лучше.
— А Вы не знаете другого способа возвести число в квадрат и в куб, кроме частичных сумм в разложении в ряд Тейлора? 🙂
Done
Поскольку Вы первое сентябрьское задание начали выполнять под Новый Год за три дня перед экзаменом, у нас не будет времени на личные встречи по этому поводу. Попробуйте посмотреть для образца на работы других студентов и почитать вопросы и ответы.
Я писал функцию только для возведения x в третью и вторую степень именно для этой задачи, а не общую. Как по мне, так выглядит лучше и читабельнее чем x*x и x*x*x. Если б заданием было написать общую функцию, то я б ее реализовал по другому. Btw переделано на x*x и x*x*x. Что касается замечания Николь, я решил опубликовать уже исправленные комментарии, а потом приступить к latex, но спасибо что повторили
Зачтено.
Теперь, несмотря на говорящее название, нужно каким-то трюком решить задачу без использования ветвления.
Просто упражнение.
Если удастся добавить такой вариант кода, то отметьте раздел «Линейные вычисления» и ставьте снова на проверку.
Done