Задача.
Дано действительное число [latex]a[/latex]. Вычислить [latex]f(a)[/latex], где [latex]f[/latex] – периодическая функция с периодом 1.5, совпадающая на отрезке [latex][0;1.5][/latex] с функцией [latex]x^3-2,25x[/latex].
Тесты:
[latex]a[/latex] | [latex]f(a)[/latex] | Комментарий |
2.12 | -1.15667 | Тест пройден |
-8 | -1.25 | Тест пройден |
11.6 | -1.14 | Тест пройден |
3.7 | -1.232 | Тест пройден |
Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone{ public static void main (String[] args) throws java.lang.Exception{ double a, b, c, p = 1.5; double f; Scanner x = new Scanner(System.in); a = x.nextDouble(); c = a / p; b = Math.floor(a/p); a = (c-b)*p; f = a*a*a-2.25*a; System.out.print(f); } } |
Решение:
Мы просто приравниваем [latex]a[/latex] к остатку от деления числа [latex]a[/latex] на период [latex]p=1.5[/latex], таким образом мы сдвигаем [latex]a[/latex], влево на необходимое количествоp пока [latex]a[/latex] не попадет в отрезок [latex][0;1.5][/latex]. Если число [latex]a[/latex] принадлежит отрезку [latex][0;1.5][/latex], то по данному алгоритму число [latex]a[/latex] останется неизменным.