Задача.
Дано действительное число х. Не пользуясь никакими другими арифметическими операциями кроме сложения, вычитания и умножения, вычислить:
[latex]2x^4 + 3x^3 — 4x^2 — 5x +6[/latex]Разрешается использовать не более четырех умножений и четырех сложений и вычитаний.
Тест
x | p | комментарий |
0 | 6 | пройдено |
1 | 2 | пройдено |
5 | 1506 | пройдено |
-6 | 1836 | пройдено |
-20 | 294506 | пройдено |
25 | 825506 | пройдено |
50 | 12864756 | пройдено |
100 | 202959506 | пройдено |
1 2 3 4 5 6 7 8 9 10 |
#include <iostream> #include <math.h> int main() { double p, x; scanf("%lf", &x); p = (((2*x + 3)*x - 4)*x - 5)*x + 6; printf("%lf", p); return 0; } |
Ссылка на программу на С++: http://ideone.com/DjvDnb
Ссылка на программу на Java: http://ideone.com/5XNsDv
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main (String[] args) { Scanner in=new Scanner(System.in); double x=in.nextDouble(); double p=in.nextDouble(); p = (((2*x + 3)*x - 4)*x - 5)*x + 6; System.out.println(p); } } |
Решение.
Вводим переменные [latex]x, p[/latex]. Поэтапно группируя по два старших члена уравнения, получаем:
7 |
p = (((2*x + 3)*x - 4)*x - 5)*x + 6; |
Пользуясь четырьмя операциями умножения, двумя сложения и вычитания и вводя соответствующие значения [latex]x[/latex], получаем ответ.
Формулу нужно добавлять в latex, а не как картинку.
В тестах не нужно использовать crayon (код).
Не соблюдено выравнивание лесенкой (отступы).
Число x вещественное, а используете %d в printf и scanf. К тому же, лучше использовать тип double, как более точный.
Использовано 5 операций умножить.
Задайте метки (ключевые слова).
Добавлю ещё 🙂
— Не нужно использовать механизм публикации кода программы для того, чтобы вставить в таблицу тестов число -2147483648. Нужно просто нажимать кнопки с цифрами на клавиатуре. Иначе выходит ужасно. Обязательно удалите «это» из таблицы.
— Когда Вы вставляете в отчёт отдельные строчки программы это хорошо. Но почему просто не написать «в строке 7», «в строке 5»? А если всё же вставляете, то указывайте для них тот же номер, что и в программе. Иначе всё запутывается.
Что происходит? Мы что, три недели ходим по кругу с этой задачей?
— В условии чётко написано «Не пользуясь никакими другими арифметическими операциями кроме сложения, вычитания и умножения». Никаких pow(a,b)!
— Внимательно прочтите и наберите (или скопируйте) правильно условие из задачника! То, что Вы написали сделать невозможно. Как такое выражение вычислить за 4 действия?!
— Как решать? Если фантазия ничего не подсказывает, можно воспользоваться простой схемой Горнера.
Разъяснение по условию. Вы понимаете эту фразу «Разрешается использовать не более четырех умножений и четырех сложений и вычитаний»? Она означает, что можно поставить в 4-х местах программы умножения (*) и еще в четырёх местах сложения или вычитания (+ или -). Всего получается не более 8-и значков математических операций.
— Где метки (ключевые слова)?
— Два теста полностью проверяют работоспособность программы? Думаете одного целого положительного числа и нуля хватит?
— По оформлению осталось одно крохотное замечание — самый первый x не в laTeX.
— 7-я строка в программе излишне сдвинута вправо
— Вам всё еще не удалось набрать правильно текст условия задачи. В пошлом комментарии я полностью процитировал: «Разрешается использовать не более четырех умножений и четырех сложений и вычитаний». Даже не знаю, как ещё Вам помочь.
— И самое важное — Вы не решили задачу. Т.е. теперь с количеством операций у Вас всё хорошо, только вычислили Вы что-то другое. И разделили неправильно, и делить-то не обязательно. Я дал ссылку на статью про схему Горнера. Прочтите там только две первые формулы. Там где написано P(x) = … Не читайте дальше.
– Вам всё еще не удалось набрать правильно текст условия задачи. В пошлом комментарии я полностью процитировал:
Даже не знаю, как ещё Вам помочь.
— «р — искомое произведение». Вы не ищете какого-либо произведения. Вы ищите значение многочлена.
— p = (((2*x + 3)*x — 4)*x — 5) + 6; — всё ещё не правильно.
— Продолжаете мошенничать с тестами? Ну-ну… Для Ваших данных тесты ответы другие
0 6
1 2
5 1506
-6 1836
-20 294506
25 825506
50 12864756
100 202959506
Принято