根据下面关系式,求圆周率的值,直到最后一项的值小于给定阈值。
输入格式:
输入在一行中给出小于1的阈值。
输出格式:
在一行中输出满足阈值条件的近似圆周率,输出到小数点后6位。
输入样例:
0.01
输出样例:
3.132157
public static void main(String[] args) {
// TODO Auto-generated method stu
double m = 1.0, d = 1.0, n = 100000;// molecular,denominator;假设运行100000次,满足条件则跳出循环;
double min = 0.00, sum = 2.0;// 最后结果是sum*2,索性初始值就是2;
Scanner in = new Scanner(System.in);
min = in.nextDouble();
for (int i = 1; i <= n; i++) {
m *= i;
d *= 2 * i + 1;
sum += 2 * m / d;
if (m / d <= min)// 判断跳出函数条件
break;
}
DecimalFormat df = new DecimalFormat("0.000000");// 6位小数
String num = df.format(sum);
System.out.println("num: " + num);
}