fork(2) download
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. int main()
  5. {
  6. double accuracyLimit = 0;
  7. std::cout << "Enter range accuracy limit: " << std::endl;
  8. std::cin >> accuracyLimit;
  9. std::cout << "Accuracy limit = " << accuracyLimit << std::endl;
  10.  
  11. double sum = 0;
  12. double item = 0;
  13. double i = 1;
  14.  
  15. do
  16. {
  17. auto numerator = std::pow(-1, i);
  18. auto denominator = i * (i + 1) * (i + 2);
  19. item = numerator / denominator;
  20. std::cout
  21. << "i=" << i
  22. << " item=" << item << " (" << numerator << "/" << denominator << ")"
  23. << std::endl;
  24. sum += item;
  25. ++i;
  26. }
  27. while (std::abs(item) > accuracyLimit);
  28.  
  29. std::cout << std::endl << " === Calculating finished " << std::endl;
  30. std::cout << "Range items count = " << --i << std::endl;
  31. std::cout << "Range amount = " << sum << std::endl;
  32. }
  33.  
Success #stdin #stdout 0s 3472KB
stdin
0.001
stdout
Enter range accuracy limit: 
Accuracy limit = 0.001
i=1 item=-0.166667 (-1/6)
i=2 item=0.0416667 (1/24)
i=3 item=-0.0166667 (-1/60)
i=4 item=0.00833333 (1/120)
i=5 item=-0.0047619 (-1/210)
i=6 item=0.00297619 (1/336)
i=7 item=-0.00198413 (-1/504)
i=8 item=0.00138889 (1/720)
i=9 item=-0.0010101 (-1/990)
i=10 item=0.000757576 (1/1320)

 === Calculating finished 
Range items count = 10
Range amount = -0.135967