import java.io.*;public class PiDemo { public static void main(String[] args) { int t; double N ; int i=0; double sum = 0.0; double pi; System.out.print("i ="); try { BufferedReader br = new BufferedReader(new InputStreamReader( System.in)); i = Integer.parseInt(br.readLine()); } catch (Exception e) { } do { t = Math(-1, i - 1); sum += 1.0 * t / (2.0 * i - 1); pi = sum * 4; N = i; } while (pi > 3.14159); System.out.println(" N=" + N + "\n pi =" + pi); } private static int Math(int i, int j) { // TODO 自动生成方法存根 return 0; } }
private static int Math(int i, int j) { // TODO 自动生成方法存根 return 0; } 这个函数你是想轮流出现+ - 交替吧 其实没有起作用
public class PiDemo { public static void main(String[] args) { int t=1; double N ; int i=0; double sum = 0 ; double pi; boolean unfair = true; double first=0; double second=0; do { i++; if(i%2==0) t = -1; else t = 1; sum += 1.0 * t / (2.0 * i - 1); pi = sum * 4; if(t==1){ second = pi; if((first>3.141593)&&(second<3.141593)){ unfair = false; } else{ first = second; } } N = i; } while (unfair); System.out.println(" N=" + N + "\n pi =" + first);
double N ;
int i=0;
double sum = 0.0;
double pi;
System.out.print("i =");
try { BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
i = Integer.parseInt(br.readLine());
} catch (Exception e) {
}
do {
t = Math(-1, i - 1);
sum += 1.0 * t / (2.0 * i - 1);
pi = sum * 4;
N = i;
} while (pi > 3.14159); System.out.println(" N=" + N + "\n pi =" + pi); } private static int Math(int i, int j) {
// TODO 自动生成方法存根
return 0;
}
}
// TODO 自动生成方法存根
return 0;
}
这个函数你是想轮流出现+ - 交替吧
其实没有起作用
就算得到了精确的值 也是3.1415926... 比3.14159大一
点 所以题目有问题
我改了下题目 比3.141593 大一点的n的值 代码:
package csdn;import java.io.*;
public class PiDemo { public static void main(String[] args) { int t=1;
double N ;
int i=0;
double sum = 0 ;
double pi;
boolean unfair = true;
double first=0;
double second=0;
do {
i++;
if(i%2==0)
t = -1;
else
t = 1;
sum += 1.0 * t / (2.0 * i - 1);
pi = sum * 4;
if(t==1){
second = pi;
if((first>3.141593)&&(second<3.141593)){
unfair = false;
}
else{
first = second;
}
}
N = i;
} while (unfair); System.out.println(" N=" + N + "\n pi =" + first);
}
}