fork(1) download
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. int fact( int i )
  5. {
  6. int ret = 1;
  7. while( i )
  8. {
  9. ret *= i--;
  10. }
  11. return ret;
  12. }
  13.  
  14. double mycos( double x )
  15. {
  16. const double eps = 1e-5;
  17. double res = 0;
  18. int i = 0;
  19. double term = 0;
  20. do
  21. {
  22. term = std::pow( x, i*2 ) / fact( 2*i );
  23. term = i & 1 ? -term : term;
  24. res += term;
  25. //std::cout << term << std::endl;
  26. i++;
  27. }
  28. while( std::abs(term) > eps );
  29. return res;
  30. }
  31.  
  32. int main() {
  33.  
  34. double x = 0.5;
  35. std::cout << "mycos( " << x << " ) = " << mycos(x) << std::endl;
  36. std::cout << "std::cos( " << x << " ) = " << std::cos(x) << std::endl;
  37.  
  38. return 0;
  39. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
mycos( 0.5 ) = 0.877583
std::cos( 0.5 ) = 0.877583