fork(1) download
  1. #include <iostream>
  2. #include <cmath>
  3. #include <iomanip>
  4. using namespace std;
  5.  
  6. void my_pi_func(int term);
  7.  
  8. int main()
  9. {
  10. int term;
  11.  
  12. cout << fixed << setprecision(12); // set digits after decimal to 12
  13.  
  14. while (cin >> term){
  15. my_pi_func(term);
  16. }
  17.  
  18. return 0;
  19.  
  20. }
  21.  
  22. void my_pi_func(int term)
  23. {
  24. if (term <= 0){
  25. cout << "\n\nNegative value or 0 read\n\n" << endl;
  26. return;
  27. }
  28.  
  29. double leibniz = 0.0; // pi value calculated from Leibniz
  30. int counter = 0; // starting value
  31. double eulerall = 0.0; // value calculated from Euler (all integers)
  32. double eulerodd = 0.0; // value calculated from Euler (odds)
  33. double eulerallans = 0.0; // pi value calculated from Euler series (all integers)
  34. double euleroddans = 0.0; // pi value calculated from Euler series (odd integers)
  35.  
  36. while(term > counter){
  37. leibniz = 4*(pow(-1, counter)) / (2*counter+1) + leibniz;
  38. eulerall = (1/pow(counter+1,2)) + eulerall;
  39. eulerodd = (pow(-1, counter)) / (pow(2*counter + 1, 3)) + eulerodd;
  40. counter++;
  41. eulerallans = sqrt(eulerall*6);
  42. euleroddans = pow(32*eulerodd, 1.0/3.0);
  43. }
  44. cout << right << setw(14) << "# TERMS" << setw(15) << "LEIBINZ" << setw(15)
  45. << "EULER-ALL" << setw(15) << "EULER-ODD" << endl;
  46. cout << right << setw(14) << term << " " << leibniz << " " << eulerallans
  47. << " " << euleroddans <<endl;
  48.  
  49.  
  50. }
Success #stdin #stdout 0s 3304KB
stdin
1

6

-5

100

-1000000

0
stdout
       # TERMS        LEIBINZ      EULER-ALL      EULER-ODD
             1 4.000000000000 2.449489742783 3.174802103936
       # TERMS        LEIBINZ      EULER-ALL      EULER-ODD
             6 2.976046176046 2.991376494748 3.141291949057


Negative value or 0 read


       # TERMS        LEIBINZ      EULER-ALL      EULER-ODD
           100 3.131592903559 3.132076531809 3.141592586052


Negative value or 0 read




Negative value or 0 read