开发者社区> 问答> 正文

Java控制台打印出“无限”而不是无限的时间?

我正在尝试制作一个用Leibniz方程估算pi的程序作为pi day的属性,但是与其打印出我希望控制台打印出无限pi的估算pi值,不如无限期地打印“ infinity”,直到终止执行为止。我非常非常困惑,需要帮助!码:

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/Determining-the-value-of-pi-pi-日属性

问题来源:Stack Overflow

展开
收起
montos 2020-03-25 16:40:56 520 0
1 条回答
写回答
取消 提交回答
  • 您的for循环条件是错误的,应该是for (int i = 0; i < iterations; i++) 您一直在使用for(int i=0;0<iterations;i++){ 0<iterations,这始终是正确的,并且循环变为无限。

    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);
            }
        }
    }
    

    回答来源:Stack Overflow

    2020-03-25 16:42:30
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载