#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main(){
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(3);
int i, terms;
cout << "Enter the number of terms to approximate (or zero to quit):\n";
cin >> terms;
while(1){
if (terms == 0){
return 0;
}
if (terms > 0){
double partial = 0;
for (i = 0; i < terms; i++)
if (i % 2 == 0)
partial -= (pow(-1,terms))/((2.0 * i) + 1);
else
partial += (pow(-1,terms))/((2.0 * i) + 1);
double newPi = 4 * partial;
cout << "The approximation is " << newPi << " using " << terms << " terms.\n";
}
cout << "Enter the number of terms to approximate (or zero to quit):\n";
cin >> terms;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8Y21hdGg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKXsKCiAgY291dC5zZXRmKGlvczo6Zml4ZWQpOwogIGNvdXQuc2V0Zihpb3M6OnNob3dwb2ludCk7CiAgY291dC5wcmVjaXNpb24oMyk7CiAgCiAgaW50IGksIHRlcm1zOwoKICBjb3V0IDw8ICJFbnRlciB0aGUgbnVtYmVyIG9mIHRlcm1zIHRvIGFwcHJveGltYXRlIChvciB6ZXJvIHRvIHF1aXQpOlxuIjsKICBjaW4gPj4gdGVybXM7CiAgCiAgICB3aGlsZSgxKXsKICAgICAgCiAgICAgICAgaWYgKHRlcm1zID09IDApewogICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgICAgICBpZiAodGVybXMgPiAwKXsKICAgICAgICAgICAgCiAgICAgICAgICAgIGRvdWJsZSBwYXJ0aWFsID0gMDsKICAgICAgICAgICAgCiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0ZXJtczsgaSsrKQogICAgICAgICAgICAgICAgaWYgKGkgJSAyID09IDApCiAgICAgICAgICAgICAgICAgICAgcGFydGlhbCAtPSAocG93KC0xLHRlcm1zKSkvKCgyLjAgKiBpKSArIDEpOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHBhcnRpYWwgKz0gKHBvdygtMSx0ZXJtcykpLygoMi4wICogaSkgKyAxKTsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgZG91YmxlIG5ld1BpID0gNCAqIHBhcnRpYWw7CiAgICAgICAgICAgIAogICAgICAgICAgICBjb3V0IDw8ICJUaGUgYXBwcm94aW1hdGlvbiBpcyAiIDw8IG5ld1BpIDw8ICIgdXNpbmcgIiA8PCB0ZXJtcyA8PCAiIHRlcm1zLlxuIjsKICAgICAgICAgICAgCiAgICAgICAgICB9CiAgICAgICAgCiAgICAgICAgY291dCA8PCAiRW50ZXIgdGhlIG51bWJlciBvZiB0ZXJtcyB0byBhcHByb3hpbWF0ZSAob3IgemVybyB0byBxdWl0KTpcbiI7CiAgICAgICAgY2luID4+IHRlcm1zOwogICAgICAgIAogICAgfQogIAogIHJldHVybiAwOwp9