HDOJ 1012 u Calculate e

2021-01-21 11:04:21 浏览数 (1)

Problem Description A simple mathematical formula for e is

where n is allowed to go to infinity. This can actually yield very accurate approximations of e using relatively small values of n.

Output Output the approximations of e generated by the above formula for the values of n from 0 to 9. The beginning of your output should appear similar to that shown below.

Sample Output n e


0 1 1 2 2 2.5 3 2.666666667 4 2.708333333

简单的阶乘运算。 对于小数大于9位的,保留9位小数,四舍五入。

代码语言:javascript复制
public class Main {
    public static void main(String[] args) {
        //打表输出:
        System.out.println("n e");
        System.out.println("- -----------");
        System.out.println("0 1");
        System.out.println("1 2");
        System.out.println("2 2.5");

        //3-9 的数:
        for(int i=3;i<10;i  ){
            double a=0;
            for(int k=0;k<=i;k  ){
                a = a fact(a,k);
            }
            System.out.print(i " ");
            //默认为四舍五入
            System.out.printf("%.9f",a);
            System.out.println();
        }

    }

    //返回数为i的阶乘分之一
    private static double fact(double a, int i) {
        double e = 1;
        if(i==0){
            return 1;
        }
        for(int j=1;j<=i;j  ){
            e = e*j;
        }
        return 1/e;
    }

}

0 人点赞