#include <iostream>
#include <math.h>
int main( )
{
double E, x, dife, left, right = 0.0 , u = 1.0 ; int n = 0 ; //Описание переменных для хранения входных данных.//
scanf ( "%lf %lf" , & x, & E) ; //Чтение из стандартного потока ввода.//
left = ( pow ( M_E , x) + pow ( M_E , - x) ) / 2 ; //Расчет левой части равенства.
if ( E ! = 0 ) //Критерий, при котором программа может быть выполнена//
{
do //Цикл программы (для подсчета правой части равенства).
{
n ++ ;
right + = u ;
u * = x * x / ( ( 2 * n - 1 ) * 2 * n ) ;
dife = left - right; //Вычисление разности значения левой части и правой части//
}
while ( dife > fabs ( E) ) ; //Конечный критерий, при котором цикл останавливается//
//Вывод окончательных результатов на экран//
printf ( "Левая часть равна = %.10lf \n Правая часть равна = %.10lf \n " ,left,right) ;
printf ( "После n=%d исследуемое выражение отличается от левой части менее, чем на %.10lf, " ,n,fabs ( E) ) ;
printf ( "а именно на %.10lf \n " ,fabs ( dife) ) ;
}
else
{ //Вывод оповещения о неправильном вводе данных (при несоответствии начальному критерию).//
if ( fabs ( E) == 0 )
{
printf ( "Погрешность равна 0, тогда правая часть стремится к левой %.10lf (n=бесконечность)" ,left) ;
}
}
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWF0aC5oPgppbnQgbWFpbigpIAp7Cglkb3VibGUgRSwgeCwgZGlmZSwgbGVmdCwgcmlnaHQgPSAwLjAsIHUgPSAxLjAgOyBpbnQgbiA9IDA7Ly/QntC/0LjRgdCw0L3QuNC1INC/0LXRgNC10LzQtdC90L3Ri9GFINC00LvRjyDRhdGA0LDQvdC10L3QuNGPINCy0YXQvtC00L3Ri9GFINC00LDQvdC90YvRhS4vLwoJc2NhbmYoIiVsZiAlbGYiLCAmeCwgJkUpOyAvL9Cn0YLQtdC90LjQtSDQuNC3INGB0YLQsNC90LTQsNGA0YLQvdC+0LPQviDQv9C+0YLQvtC60LAg0LLQstC+0LTQsC4vLyAKCWxlZnQgPSAoIHBvdyAoTV9FICwgeCkgKyBwb3cgKE1fRSAsIC14KSApIC8gMjsgLy/QoNCw0YHRh9C10YIg0LvQtdCy0L7QuSDRh9Cw0YHRgtC4INGA0LDQstC10L3RgdGC0LLQsC4KCWlmIChFICE9IDApIC8v0JrRgNC40YLQtdGA0LjQuSwg0L/RgNC4INC60L7RgtC+0YDQvtC8INC/0YDQvtCz0YDQsNC80LzQsCDQvNC+0LbQtdGCINCx0YvRgtGMINCy0YvQv9C+0LvQvdC10L3QsC8vCgl7CQoJCWRvIC8v0KbQuNC60Lsg0L/RgNC+0LPRgNCw0LzQvNGLICjQtNC70Y8g0L/QvtC00YHRh9C10YLQsCDQv9GA0LDQstC+0Lkg0YfQsNGB0YLQuCDRgNCw0LLQtdC90YHRgtCy0LApLgoJCXsJCgkJCW4gKys7CgkJCXJpZ2h0ICs9IHUgOwoJCSAJdSAqPSAgeCAqIHggLyAoICgyICogbiAtIDEpICogMiAqIG4gKTsKCQkJZGlmZSA9IGxlZnQgLSByaWdodDsgLy/QktGL0YfQuNGB0LvQtdC90LjQtSDRgNCw0LfQvdC+0YHRgtC4INC30L3QsNGH0LXQvdC40Y8g0LvQtdCy0L7QuSDRh9Cw0YHRgtC4INC4INC/0YDQsNCy0L7QuSDRh9Cw0YHRgtC4Ly8KCQl9CgkJd2hpbGUoZGlmZSA+IGZhYnMoRSkpOyAvL9Ca0L7QvdC10YfQvdGL0Lkg0LrRgNC40YLQtdGA0LjQuSwg0L/RgNC4INC60L7RgtC+0YDQvtC8INGG0LjQutC7INC+0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGC0YHRjy8vCgkJLy/QktGL0LLQvtC0INC+0LrQvtC90YfQsNGC0LXQu9GM0L3Ri9GFINGA0LXQt9GD0LvRjNGC0LDRgtC+0LIg0L3QsCDRjdC60YDQsNC9Ly8KCQlwcmludGYoItCb0LXQstCw0Y8g0YfQsNGB0YLRjCDRgNCw0LLQvdCwID0gJS4xMGxmIFxu0J/RgNCw0LLQsNGPINGH0LDRgdGC0Ywg0YDQsNCy0L3QsCA9ICUuMTBsZiBcbiIsbGVmdCxyaWdodCk7CgkJcHJpbnRmKCLQn9C+0YHQu9C1IG49JWQg0LjRgdGB0LvQtdC00YPQtdC80L7QtSDQstGL0YDQsNC20LXQvdC40LUg0L7RgtC70LjRh9Cw0LXRgtGB0Y8g0L7RgiDQu9C10LLQvtC5INGH0LDRgdGC0Lgg0LzQtdC90LXQtSwg0YfQtdC8INC90LAgJS4xMGxmLCAiLG4sZmFicyhFKSk7IAoJCXByaW50Zigi0LAg0LjQvNC10L3QvdC+INC90LAgJS4xMGxmIFxuIixmYWJzKGRpZmUpKTsKCX0KCWVsc2UKCXsJLy/QktGL0LLQvtC0INC+0L/QvtCy0LXRidC10L3QuNGPINC+INC90LXQv9GA0LDQstC40LvRjNC90L7QvCDQstCy0L7QtNC1INC00LDQvdC90YvRhSAo0L/RgNC4INC90LXRgdC+0L7RgtCy0LXRgtGB0YLQstC40Lgg0L3QsNGH0LDQu9GM0L3QvtC80YMg0LrRgNC40YLQtdGA0LjRjikuLy8KCQlpZiAoZmFicyhFKSA9PSAwKQoJCXsKCQkJcHJpbnRmKCLQn9C+0LPRgNC10YjQvdC+0YHRgtGMINGA0LDQstC90LAgMCwg0YLQvtCz0LTQsCDQv9GA0LDQstCw0Y8g0YfQsNGB0YLRjCDRgdGC0YDQtdC80LjRgtGB0Y8g0Log0LvQtdCy0L7QuSAlLjEwbGYgKG490LHQtdGB0LrQvtC90LXRh9C90L7RgdGC0YwpIixsZWZ0KTsKCQl9Cgl9CglyZXR1cm4gMDsKfQ==