java编程,怎么算1!+2!+3!+4!+……+n!

如题所述

public class Test004 {

public static void main(String[] args) {
System.out.println(func2(4));
}

//计算阶乘
private static long func1(int n) {
if(n <= 0) {
System.out.println("请输入正整数!");
return -1;
}else if(n == 1){
return 1;
}else {
return n * func1(n-1);
}
}

//计算求和
private static long func2(int n) {
if(n <= 0) {
System.out.println("请输入正整数!");
return -1;
}else if(n == 1){
return 1;
}else {
return func1(n) + func2(n-1);
}
}
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-09-22
    //求N的阶乘方法
    public static int factorial(int n)
    {
        if(n == 1)
        {
            return 1;
        }
        return n * factorial(n-1);
    }
    
    //求出1!+2!+3!+...+n!
    public static int calc(int n)
    {
        if(n == 1)
        {
            return 1;
        }
        return factorial(n) + calc(n - 1);
    }
    
    //main方法
    public static void main(String[] args) throws Exception
    {
        System.out.println(calc(3));
    }

本回答被网友采纳
第2个回答  2015-09-22
1! = 1;
2! = 1*2;
3! = 1*2*3;
1! + 2! + 3! = 1(1+2(1+3)) ;
1! + 2! + 3! +4! = 1( 1 + 2( 1 + 3(1 + 4)));
规律如上,代码参考下下面的

static long a (int i){
if (i < 1){
throw new IllegalStateException("输入小于1");
}
if (i == 1){
return 1;
}
long ret = 1;
for ( ; i > 1; i--){
ret = 1 + i *ret;
}
return ret;
}
public static void main(String[] args) {
System.out.println(a(4));
}
第3个回答  2018-10-23
public class Jiec {
public static void main(String[] args) {
int sum=0,t=1,n;
for(n=1;;n++)
{
t=t*n;
sum=sum+t;
if(sum>10000)
{
break;
}
}
System.out.println("sum="+sum+" "+"n="+n);
}
}
相似回答