Java консоль распечатывает «бесконечность» бесконечное количество раз вместо значения? - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь создать программу, которая оценивает число Пи с уравнением Лейбница как атрибут числа Пи, но вместо того, чтобы выводить предполагаемое значение числа Пи, которое я хотел, консоль печатает «бесконечность» бесконечное число раз, пока я не завершу работу. выполнение. Я очень очень запутался, нужна помощь! код:

import java.util.Scanner;
class Main {
  public static void main(String[] args) {
    //in order to celebrate pi day I have made this program that calculates pi with the Leibniz Formula
     System.out.println("enter the number of iterations you want:");
    double EstimatedPi=0;
    Scanner input= new Scanner(System.in);
    double iterations=input.nextDouble();
    double denominator = 1;
    for(int i=0;0<iterations;i++){
      if(i%2 == 0){
        EstimatedPi=EstimatedPi + (1/denominator);
      }
      else{
        EstimatedPi=EstimatedPi-(1/denominator);
      }
      denominator=denominator+2;
      EstimatedPi=EstimatedPi*4;
      System.out.println(EstimatedPi);
    }
  }
}

Не думаю, что я разделил что-либо на ноль во всей программе! формула Лейбница: https://en.wikipedia.org/wiki/Leibniz_formula_for_π снимок экрана консоли: снимок экрана ссылка на мой проект repl: https://repl.it/@HarryPengRHS / Определение значения-pi-pi-day- атрибут

1 Ответ

1 голос
/ 15 марта 2020

Ваше условие для l oop неверно, должно быть for (int i = 0; i < iterations; i++) вы использовали for(int i=0;0<iterations;i++){ 0<iterations, что всегда верно, а l oop стремится к бесконечности.

public class Main {

    public static void main(String[] args) {// in order to celebrate pi day I have made this program that calculates pi
                                            // with the Leibniz Formula
        System.out.println("enter the number of iterations you want:");
        double EstimatedPi = 0;
        Scanner input = new Scanner(System.in);
        double iterations = input.nextDouble();
        double denominator = 1;
        for (int i = 0; i < iterations; i++) {
            if (i % 2 == 0) {
                EstimatedPi = EstimatedPi + (1 / denominator);
            } else {
                EstimatedPi = EstimatedPi - (1 / denominator);
            }
            denominator = denominator + 2;
            EstimatedPi = EstimatedPi * 4;
            System.out.println(EstimatedPi);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...