求π的值,java

2024-12-12 10:55:56
推荐回答(4个)
回答1:

        首先你的for循环没有加大括号,养成习惯后以后写代码可能会对排错造成困难;其次,你的for循环里的循环变量应该是 i ,而你写的是 n ,这是造成你程序出错的原因。你的公式没有问题,不过可以写的更简洁一些。

import java.util.Scanner;
public class Test {
 
  public static void main(String[] arg){
   Scanner input = new Scanner(System.in);
   int n =input.nextInt();
   double sum = 1;
   int flag= -1;
   for(int i = 1; i < n; i++){
//    sum += (1.0 / (4 * i + 1)) - (1.0 / (4 * i - 1)); 这段代码可以修改为如下代码
    sum += flag*(1.0 / (2 * i + 1)) ;
    flag *= -1; //flag 会 1,-1,1,-1 ...循环
    System.out.println(flag); //跟踪flag的值
    System.out.println(4*sum);//跟踪 PI 的值
   }
    sum *= 4;
    System.out.println(sum); //最终的输出
    System.out.println(Math.PI); //Math是一个工具类,里面封装了很多常用的数学方法
                                 //PI代表圆周率的估值,Math.PI=3.141592653589793
  }
}

回答2:

import java.util.Scanner;
import org.junit.Test;

public class ExportDBTest {
@Test
public void test() {
//题目要求:π = 4 * ( 1 - 1/3 + 1/5 - 1/7 + 1/9 ........)
Scanner input = new Scanner(System.in);
int n = input.nextInt()*2+2;
double num=1;
boolean sum_sub=true;
for(double i = 1; i < n; i++){

if(i%2==1 && i!=1){
if(sum_sub){
num-=1/i;
System.out.println("括弧内本次结果="+num);
sum_sub=false;
}else{
num+=1/i;
System.out.println("括弧内本次结果="+num);
sum_sub=true;
}
}
}
double sum = 4* (num);
System.out.println(sum);
}
}

括号内运算符规律:1-*+*-*+*.......
用循环取出括号内值,再根据boolean sum_sub 判断该加该减
然后用4*num即可
注意:for(double i = 1; i < n; i++) 而且不是for(int i = 1; i < n; i++){

回答3:

import java.util.Scanner;
public class findpai {
public static void main(String[] arg){
//π = 4 * ( 1 - 1/3 + 1/5 - 1/7 + 1/9 ........)
// n= 1 2 3 4 5
// 1/2n-1
Scanner input = new Scanner(System.in);
int n = input.nextInt();
double sum = 0;
for(int i = 1; i < n; i++){
if(i%2!=0){
sum+=1.0/(2*i-1);
}else{
sum-=1.0/(2*i-1);
}
}

sum *= 4;
System.out.println(sum);
}
}

回答4:

sum+ = (1/(4*i +1)) - (1/(4*i - 1)) ;
sum* = 4;

应该是这样了, 你再看下吧