Ни как не возьму в толк почему этот метод называют школьным, особенно учитывая то, что ряд Лейбница в школе и близко не учат. Но тем не менее вот формула по которой будет реализован данный метод нахождения числа Пи:
Поскольку нам нужно найти не П/4, а собственно Пи умножим ряд на 4 и тем самым получим рабочую формулу.
После ознакомления с методом расчётов приступим к кодирования.
Никакие посторонние библиотеки нам не понадобятся. Разве что iomanip для вывода большего количества знаков после запятой.
#include <iostream> #include <iomanip> using namespace std;
Создадим функцию для расчёта числа Пи:
float pi(long count){ double p = 0; double z = 1; for (long i = 1; i < count; i+=2){ p += z * 4 / i; z *= -1; } return p; }
Эта функция в качестве параметра принимает значение типа long — количество проходов цикла при вычислении. Я присвоил этой переменной тип long для того, чтобы можно было вычислять Пи с огромной точностью.
Вызовем нашу функцию:
int main(){ cout << setprecision(10) << pi(10000000) << endl; return 0; }
При таком количестве проходов я получил вот такое значение пи — 3.141592454. Если выводить больше 10 знаков как вы понимаете точность не увеличится. Увеличить точность расчёта можно увеличив количество проходов.