sum=1/1!+1/2!+1/3!+1/4!+...+1/n!

解决方案 »

  1.   

    public class Test{ public static void main(String[] args) {
    double d = fun(5);
    System.out.println(d);
    }

    public static double fun(int n){
    if(1 == n){
    return 1/doFactorial(1);
    }else{
    return (double)1/(doFactorial(n)) + (double)fun(n - 1);
    }
    }

    public static int doFactorial(int n){
    if(n == 1){
                return 1;
            }else{
                return doFactorial(n - 1) * n;
            }
    }
    }
      

  2.   

    和一楼很像public class Test1 { public static void main(String[] args) {
    double value = 0;
    for (int i = 1; i < 7; i++) {
    int sum = getFenMU(i);
    System.out.println("分母值:" + sum + "结果值:" + 1.0 / sum);
    value += 1.0 / sum;
    }
    System.out.println("总和:" + value);
    } public static int getFenMU(int value) {
    if (value == 1) {
    return 1;
    } else {
    return value * getFenMU(--value);
    }
    }
    }
      

  3.   

    //sum=1/1!+1/2!+1/3!+1/4!+...+1/n!
    package com.dai.prac;import java.util.Scanner;public class AddTest
    {
    public static void main(String[] args)
    {
       System.out.println("计算1/1!+1/2!+1/3!+1/4!+...+1/n!\r请输入n的值:");
          Scanner sc=new Scanner(System.in);
          int n = sc.nextInt();
          double s=0;
          for(int i=1;i<=n;i++)
          {
          s+= 1/get(i);
          
          }
          System.out.println(s);
    } private static double get(int i)
    {
    if(i==1){
    return 1;
    }
    else 
    {
    return i*get(i-1); 
    }
    }}
      

  4.   

    楼上的已经写好了~~不过如果要考虑到阶乘不溢出,可以考虑使用BigInteger或者重写乘法规则~~~~
      

  5.   


    public static int get(int i)
    {
    int start=1;
    int sum=1;
    for(;start<=i;start++)
    {
    sum*=start;
    }
    return sum;
    }
      

  6.   

    get(x,n)
    {
     if(x==n){
       return 1/x;
    } else {
       return 1+1/(x+1)*(get(x+1,n));
    }}