fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. long double f(long double s) //модуль числа
  5. {
  6. if (s<0) s=-s;
  7. return s;
  8. }
  9.  
  10. long double cotan (long double x, long double e)
  11. {
  12. long double sin=x, cos=1, cotan=0, a=1;
  13. int n=2;
  14. while (f(cos/sin-cotan)>e)
  15. {
  16. cotan = cos/sin;
  17. a*=-x*x/((n-1)*n);
  18. cos+= a;
  19. sin+= a*x/(n+1);
  20. n+=2;
  21. }
  22. cotan = cos/sin;
  23. return cotan;
  24. }
  25.  
  26. int main()
  27. {
  28. long double x,e,c;
  29. cin>>x>>e;
  30. c = cotan(x,e);
  31. int n = 0;
  32. x = c;
  33. while (f(x)>e)
  34. {
  35. x = x/10;
  36. n++;
  37. }
  38. cout.precision(n);
  39. cout<<c;
  40. return 0;
  41. }
Success #stdin #stdout 0s 3460KB
stdin
1.6 0.000001
stdout
-0.029212