В ближайшие дни Архивач временно работает без основного хранилища ранее сохранённых картинок/видео пока мы проводим работы по техническому обслуживанию. Сохранение всего вновь поступающего контента продолжается. Но затем всё обязательно вернётся в полном объёме!
Помогите решить задачу.
Нужно вычислить значение суммы интегралов Френеля (два интеграла, от sin(x^2) и cos(x^2) соответственно) на отрезке от нуля до входного Х.
Точность - до пятого знака включительно. Ограничения по времени - анальные.
Попробовал метод бесконечного количества бесконечно малых прямоугольников - не укладываюсь во время: нужная точность достигается при 200 млн прямоугольников, а за заданное время успеваю обработать только около 16 млн.
Вот код:
double x;
cin >> x;
double cap = 200Math.pow(10,6);
double length = x/cap;
double sum = 0.0;
double i = length/2;
while (i<x) {
double pow = ii;
sum = sum + length (Math.sin(pow)+Math.cos(pow));
i = i + length;
}
write((Math.ceil(sum Math.pow(10, 5)) / Math.pow(10, 5))+"");
Знаю, что хуйня, обоссывайте, но помогите.