I am trying to make a program that estimates pi with the Leibniz equation as an attribute to pi day, however instead of printing out the estimated pi value that I wanted the console is printing out "infinity" for infinite times until I terminate the execution. I am very very confused, help needed! code:
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);
}
}
}
I don't think I divided anything by zero in the entire program! the Leibniz formula: https://en.wikipedia.org/wiki/Leibniz_formula_for_π console screenshot: screenshot link to my repl project: https://repl.it/@HarryPengRHS/Determining-the-value-of-pi-pi-day-attribute
Your for loop condition is wrong it should be for (int i = 0; i < iterations; i++)
you were using for(int i=0;0<iterations;i++){
0<iterations
which is always true and loop goes to infinite.
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);
}
}
}