Анализ алгоритма
Для решения задачи следует вычислить значение заданного выражения.
Реализация алгоритма
Читаем значение переменной .
scanf("%lf", &x);
Вычисляем значение переменной .
y = x * x * x - 5 * x * x / 7 + 9 * x - 3 / x + 1;
Выводим результат до тысячных.
printf("%.3lf\n", y);
Java реализация
import java.util.*; class Main { public static void main(String[] args) { Scanner con = new Scanner(System.in); double x = con.nextDouble(); double y = x * x * x - 5 * x * x / 7 + 9 * x - 3 / x + 1; System.out.printf("%.3f", y); con.close(); } }
Java реализация – класс MyDouble
import java.util.*; class MyDouble { private double a; MyDouble(double a) { this.a = a; } MyDouble Add(MyDouble b) { return new MyDouble(a + b.a); } MyDouble Add(double b) { return new MyDouble(a + b); } MyDouble Sub(MyDouble b) { return new MyDouble(a - b.a); } MyDouble Mult(MyDouble b) { return new MyDouble(a * b.a); } MyDouble Divide(MyDouble b) { return new MyDouble(a / b.a); } MyDouble Divide(double b) { return new MyDouble(a / b); } public String toString() { return String.format("%.3f", a); } } public class Main { public static void main(String[] args) { Scanner con = new Scanner(System.in); MyDouble x = new MyDouble(con.nextDouble()); MyDouble a = x.Mult(x).Mult(x); // x^3 MyDouble b = new MyDouble(5).Mult(x).Mult(x).Divide(7); // 5 * x * x / 7 MyDouble c = new MyDouble(9).Mult(x); // 9 * x MyDouble d = new MyDouble(3).Divide(x); // 3 / x MyDouble res = a.Sub(b).Add(c).Sub(d).Add(1); System.out.println(res); con.close(); } }
Python реализация
x = float(input()) y = x * x * x - 5 * x * x / 7 + 9 * x - 3 / x + 1 print(y)