#include <iostream>
#include <cmath>
using namespace std;
int main( ) {
const double PI = 3.141592 ;
int n, sign = 1 ;
double sum = 0 ,test,m;
cout << "This program determines how many iterations of the infinite series for\n "
"pi is needed to get with 'n' decimal places of the true value of pi.\n "
"How many decimal places of accuracy should there be?" << endl;
cin >> n;
double p = PI * pow ( 10.0 , n) ;
p = static_cast < double > ( static_cast < int > ( p) / pow ( 10 , n) ) ;
int counter = 0 ;
bool stop = false ;
for ( double i = 1 ; ! stop; i = i+ 2 ) {
sum = sum + ( 1.0 / i) * sign;
sign = - sign;
counter++ ;
test = ( 4 * sum) * pow ( 10.0 ,n) ;
test = static_cast < double > ( static_cast < int > ( test) / pow ( 10 , n) ) ;
cout << "" ;
if ( test == p)
stop = true ;
}
cout << test << '\n ' ;
cout << "The series was iterated " << counter<< " times and reached the value of pi\n within " << n << " decimal places." << endl;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCmNvbnN0IGRvdWJsZSBQSSA9IDMuMTQxNTkyOwppbnQgbiwgc2lnbiA9IDE7CmRvdWJsZSBzdW0gPSAwLHRlc3QsbTsKCmNvdXQgPDwgIlRoaXMgcHJvZ3JhbSBkZXRlcm1pbmVzIGhvdyBtYW55IGl0ZXJhdGlvbnMgb2YgdGhlIGluZmluaXRlIHNlcmllcyAgIGZvclxuIgogICAgICAgICJwaSBpcyBuZWVkZWQgdG8gZ2V0IHdpdGggJ24nIGRlY2ltYWwgcGxhY2VzIG9mIHRoZSB0cnVlIHZhbHVlIG9mIHBpLlxuIgogICAgICAgICJIb3cgbWFueSBkZWNpbWFsIHBsYWNlcyBvZiBhY2N1cmFjeSBzaG91bGQgdGhlcmUgYmU/IiA8PCBlbmRsOwpjaW4gPj4gbjsKCmRvdWJsZSBwID0gUEkgKiBwb3coMTAuMCwgbik7CnAgPSBzdGF0aWNfY2FzdDxkb3VibGU+KHN0YXRpY19jYXN0PGludD4ocCkgLyBwb3coMTAsIG4pKTsKaW50IGNvdW50ZXIgPSAwOwpib29sIHN0b3AgPSBmYWxzZTsKCmZvciAoZG91YmxlIGkgPSAxOyFzdG9wO2kgPSBpKzIpIHsKICAgIHN1bSA9IHN1bSArICgxLjAvIGkpICogc2lnbjsKICAgIHNpZ24gPSAtc2lnbjsKICAgIGNvdW50ZXIrKzsKICAgIHRlc3QgPSAoNCAqIHN1bSkgKiBwb3coMTAuMCxuKTsKICAgIHRlc3QgPSBzdGF0aWNfY2FzdDxkb3VibGU+KHN0YXRpY19jYXN0PGludD4odGVzdCkgLyBwb3coMTAsIG4pKTsKICAgIGNvdXQgPDwgIiIgOwogICAgICAgIGlmICh0ZXN0ID09IHApCiAgICAgICAgICAgIHN0b3AgPSB0cnVlOwp9CmNvdXQgPDwgdGVzdCA8PCAnXG4nOwpjb3V0IDw8ICJUaGUgc2VyaWVzIHdhcyBpdGVyYXRlZCAiIDw8IGNvdW50ZXI8PCAiIHRpbWVzIGFuZCByZWFjaGVkIHRoZSB2YWx1ZSBvZiBwaVxud2l0aGluICI8PCBuIDw8ICIgZGVjaW1hbCBwbGFjZXMuIiA8PCBlbmRsOwpyZXR1cm4gMDsKfQ==