Я использую метод Лейбница для расчета Пи. Моя программа вводит число точности для вычисления π, а затем применяет бесконечную сумму Лейбница, чтобы найти приблизительное значение π в пределах этой точности.
Я пытаюсь написать цикл 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, который может делать то, что я описал выше. Как мне создать такой цикл. Пожалуйста, приведите пример с объяснением.
Убедитесь, что ваша переменная 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;
}
}