java基础中的简单算法,在线等要求:
1/1!+1/2!+1/3!+....如何写代码呀,thanks

解决方案 »

  1.   

    public class JieCheng { /**
     * @param args
     */
    // 1/1!+1/2!+1/3!+.... public static float sum(int i) { float result = 1; for (int j = i; i > 1; i--) {
    result = result * i;
    } return 1 / result;
    } public static void main(String[] args) {
    // TODO Auto-generated method stub int index = 3;

    float sum = 0;

    for (int i = 1; i <= index; i++) {
    sum = sum + JieCheng.sum(i);
    }
    for (int i = 1; i <= index; i++) {
    System.out.println(JieCheng.sum(i));
    if(i<index){
    System.out.println("+");
    }

    }
    //System.out.println("-------------");
    System.out.println("=");
    System.out.println(sum);
    }}
      

  2.   

    private static double getResult(int n){
    double r=0.0;
    for(int i=1;i<=n;i++){
    r+=(1.0/(get(i)));
    }
    return r;
    }

    private static double get(int i){
    double r=1.0;
    for(int j=1;j<=i;j++){
    r*=j;
    }
    return r;
    }
      

  3.   

    public class JieCheng { /**
     * @param args
     */
    // 1/1!+1/2!+1/3!+.... public static float sum(int i) { float result = 1; for (int j = i; i > 1; i--) {
    result = result * i;
    } return 1 / result;
    } public static void main(String[] args) {
    // TODO Auto-generated method stub int index = 3; float sum = 0; for (int i = 1; i <= index; i++) {
    sum = sum + JieCheng.sum(i);
    }
    for (int i = 1; i <= index; i++) {
    System.out.println(JieCheng.sum(i));
    if (i < index) {
    System.out.println("+");
    } }
    // System.out.println("-------------");
    System.out.println("="); System.out.println(sum);
    System.out.println("-------------");
    for (int i = 1; i <= index; i++) {
    if (i < index) {
    System.out.print("1/" + i + "! + ");
    } else {
    System.out.print("1/" + i + "! = " + sum);
    }
    } }}
      

  4.   

    用两个变量,比如一个sum用于保存和,另一个x用于保存阶乘
    假设要求计算到n!的话,主要部分如下
    sum=0;x=1;
    for(int i=1;i<=n;i++){
    x=1*x;
    sum=sum+1/x;
    }
      

  5.   

    阶乘的话考虑用BigInter或者重写乘法规则,不然很容易溢出。
      

  6.   

    public class Test
    {
    public static void main(String[] args)
    {
    new Test();
    }

    public Test()
    {
    double sum = 0;
    for(int i = 1 ; i < 3 ; i++)
    {
    sum += 1.0/calFactorial(i);
    }
    System.out.println(sum);
    } public double calFactorial(int i)
    {
    if(i == 1)
    {
    return 1;
    }
    else
    {
    return calFactorial(i - 1) * i;
    }
    }
    }这个是用了递归的算法
      

  7.   

    直接出值吧:Math.E - 1
      

  8.   

    用递归做,或者自己查api文档吧。楼主自己多想想