fork download
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. struct taylor_result {
  5. int iterations;
  6. double value;
  7. double accu;
  8. taylor_result() : iterations(0),value(0),accu(1) {}
  9. };
  10.  
  11. taylor_result taylor(double x,double eps = 1e-8,taylor_result res = taylor_result()){
  12. while(res.accu > eps){
  13. res.value += res.accu;
  14. res.iterations++;
  15. res.accu *= (x / (res.iterations));
  16. }
  17. return res;
  18. }
  19.  
  20. int main(){
  21. double x = 3.0;
  22. taylor_result res = taylor(3.0,0.1);
  23. std::cout << res.value << "\n";
  24. res = taylor(3.0,0.01,res);
  25. std::cout << res.value << "\n";
  26. res = taylor(3.0,0.001,res);
  27. std::cout << res.value << "\n";
  28.  
  29. std::cout << exp(3.0) << "\n";
  30. }
Success #stdin #stdout 0s 16064KB
stdin
Standard input is empty
stdout
20.0092
20.0797
20.0852
20.0855