Mam takie zadanko:
Policzyć wartość matematycznej liczby Pi według wzoru
Pi/4 = 1 - 1/3 + 1/5 - 1/7 + 1/9 - …
Sumowanie wykonywać do momentu, gdy ostatni dodany (odjęty) wyraz
postaci 1/n jest mniejszy niż wprowadzona liczba epsilon.
I wymodziłem coś takiego:
#include <iostream>
using namespace std;
double epsilon, n, pi=0;
int i, j;
int main()
{
n=1.0/epsilon;
cout<<"Obliczanie wartosci liczby Pi."<<endl;
cout << "Podaj epsilon (im mniejszy, tym z wieksza dokladnoscia obliczona zostanie liczba Pi): " << endl;
cin>>epsilon;
for (i=1, j=0; i>n; i=i+2, j=j+1)
{
if ((j%2)==0) pi=pi+(1.0/i); else pi=pi-(1.0/i);
}
cout<<"Pi wynosi: "<<4*pi;
return 0;
}
Niestety, wywala mi, że Pi=0. Natomiast gdy wpiszę do for np. i<10000 zamiast i>n, to wyskakuje dobry wynik (3,14139). Tak więc domyślam się, że coś jest nie tak z tym moim warunkiem, ale dlaczego?
wstawienie kodu do posta
- @furious programming