在java,利用循环,计算1!+2!+3!+…100!的总和

利用循环,计算1!+2!+3!+…100!的总和

先写个求阶乘的方法:
public static int jiecheng(int n) { 
int result = 1; 
for (int i = 1; i <= n; i++) { 
result *= i; 
} 
return result; 
} 

然后如你要求的用dowhile()循环计算:(也给你写了个方法)
public static double caculate(int n) { 
double sum = 0.0; 
int i=1;
do{ 
sum = sum + 1.0 / jiecheng(i); 
i++;
} while(i<=n)

return sum; 
} 

用的时候直接调用这个方法就可以了,例如计算前20的:caculate(20);
n随便你多少  o(∩_∩)o...哈哈
public static void main(String[] args) {
    System.out.println(getSum(100));
}

public static long getSum(int max) {
    long pref = 1;
    long sum = 0;
    for (int i = 1; i <= max; ++i) {
        pref *= i;
        sum += pref;
    }
    return sum;
}

 

1!+2!+3!+4!+…+n!的和

import java.util.Scanner;

public class TEST0107 {
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        int n=scanner.nextInt();
        System.out.println(factorial(n));
    }

    public static long factorial(int n) {
        long Sum=0;
        for(int i=1;i<=n;i++){
            long  sum=1;
            //计算第i项的阶乘
            for(int j=1;j<=i;j++){
                sum=sum*j;
            }
            //阶乘累加
            Sum=Sum+sum;
        }
        return Sum;
    }
}

输入数字5后的运行结果如下:
在这里插入图片描述

代码如下,如有帮助,请采纳一下,谢谢。


public class TEST {
	//n的阶乘
	public static double jiecheng(int n){
		if(n == 0)
			return 1;
		double ss = 1;
		for(int i = 1; i <=n; i++)
			ss *= i;
		return ss;
	}
	//阶乘求和
	public static double sumjiecheng(int n){
		double sum = 0;
		for(int i = 1; i <=n; i++)
			sum += jiecheng(i);
		return sum;
	}
	
	
	public static void main(String[] args)	{
		int n = 5;
		
		System.out.println("1! + 2! + ...+ 100! =" + sumjiecheng(100));
	}

}