Errore in programma per calcolare PI greco

di il
4 risposte

Errore in programma per calcolare PI greco

Ciao a tutti, sto imparando a programmare in C++ e per esercitarmi ho provato a scrivere un programma per calcolare il PI greco usando la serie di Nilakantha: p = 3 + 4/(2*3*4) - 4/(4*5*6) + 4/(6*7*8) ... i numeri nelle parentesi sono sempre in successione e si alternano + e - come segno del 4.
Il codice è:
#include <iostream>
using namespace std;

long double PI = 3;
long int x = 2, y = 3, z = 4, cont = 0;
long int n; //quante volte viene eseguito il calcolo
signed int s = -1; //segno del 4
 
int main()
{
	cout << "Programma per calcolare il pi greco!" << endl;
	cout << "Insersci un numero, piu' grande sara' e maggiore sara' la precisione del pi greco, ma ci vorra' anche piu' tempo a calcolarlo!" << endl;
	cin >> n;
	while(cont < n)
	{
		cont ++;
		s = -s;
		PI += (s*4)/(x*y*z);
		x += 2;
		y += 2;
		z += 2;
	}
	cout << "Il pi greco e': " << PI << endl;
}
Quando eseguo il programma, qualunque sia il valore di n che inserisco, viene stampato subito 3 come valore di PI. Ho provato a capire dove sta l'errore ma non ho concluso niente, sapreste dirmi dove sbaglio? Scusate se l'errore è banale o anche se il programma non è il massimo, ma come ripeto sto ancora imparando

4 Risposte

Devi accedere o registrarti per scrivere nel forum
4 risposte