цикл while — Оценка Pi с использованием лейбница в переполнении стека

Я использую метод Лейбница для расчета Пи. Моя программа вводит число точности для вычисления π, а затем применяет бесконечную сумму Лейбница, чтобы найти приблизительное значение π в пределах этой точности.

Я пытаюсь написать цикл C ++ while, который будет вводить число точности (двойное число), начальная сумма будет равна нулю, а изначально n будет равно нулю.

Знаменатель при n = 0, d = 2 * n + 1 = 1, поэтому следующий член будет 4.0 / 1 = 4.0.

Затем это будет добавлено к сумме и приращению n. Если этот предыдущий член был больше точности, цикл продолжился бы.

Когда предыдущий член меньше точности, число должно быть выведено, и цикл должен быть завершен.

Моя точность никогда не превышает ± 0,0001.

Мой не рабочий код:

while(sum<accuracy)
{
int n = 0;
while(n>10) //this is here due to debugging
{
sum=-4/(2*n+1);
n++;
cout << sum << endl;
}
}

Вопрос:
Мне трудно придумать рабочий цикл while, который может делать то, что я описал выше. Как мне создать такой цикл. Пожалуйста, приведите пример с объяснением.

-2

Решение

Убедитесь, что ваша переменная sum равна float / double. Это как наш друг комментирует, ты жертва целочисленного деления

double sum;

while(sum<accuracy){
int n=0;
while(n>10)
{
sum=-4.0/(2.0*n+1.0);
n++;
cout << sum << endl;
}
}
0

Другие решения


По вопросам рекламы [email protected]