fork download
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. #ifndef M_PI
  5. #define M_PI (4*atan(1.0))
  6. #endif
  7.  
  8. double sqr(double x) { return x*x; } // просто возведение в квадрат
  9.  
  10. double sinus(double x);
  11. double cosinus(double x);
  12.  
  13. double sinus(double x) {
  14. if(fabs(x) < 2.45E-5) { // (2.45E-5)²/6 ≈ 1E-10
  15. return x;
  16. } else {
  17. return 2*sinus(x/2)*cosinus(x/2); // формула синуса двойного угла
  18. }
  19. }
  20.  
  21. double cosinus(double x) {
  22. if(fabs(x) < 1.4E-5) { // (1.4E-5)²/2 ≈ 1E-10
  23. return 1.0;
  24. } else {
  25. return sqr(cos(x/2)) - sqr(sin(x/2)); // формула косинуса двойного угла
  26. }
  27. }
  28.  
  29. int main() {
  30. printf("sin(π/6) = %f\n", sinus(M_PI/6));
  31. printf("cos(π/3) = %f\n", cosinus(M_PI/3));
  32. return 0;
  33. }
Success #stdin #stdout 0s 4420KB
stdin
Standard input is empty
stdout
sin(π/6) = 0.500000
cos(π/3) = 0.500000