如何用Java程序编写1!+2!+3!+…+n!=?

如题所述

完整代码如下,复制到eclipse中运行:

public class Exam01 {
// 下面的这个方法利用递归的方法求阶乘
public int getFac(int m) {
if (m == 1) {
return 1;
} else {
return m * getFac(m - 1);
}
}

public static void main(String args[]) {
Exam01 fac = new Exam01();
// System.out.println(fac.getFac(4));
int sum = 0;
System.out.println("输入n的值:");
int n = new Scanner(System.in).nextInt();
for (int i = 1; i <= n; i++) {
sum += fac.getFac(i);
}
System.out.println("1到" + n + "的阶乘的和是:" + sum);
}
}

结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-02
public class A {
    public int jiecheng(int a) {
        if(a < 1) {
            return 0;
        }
        int multi = 1;
        for (int i =1; i <= a; i++) {
            multi *= i;
        }
        return multi;
    }
    public int jiechengsum(int n) {
        if (n < 0)
            return 0;
        int sum = 0;
        for(int i =1; i <= n; i++) {
            sum += jiecheng(i);
        }
        return sum;
    }
    public static void main(String[] args) {
        A ca = new A();
        System.out.println(ca.jiechengsum(1));
        System.out.println(ca.jiechengsum(2));
        System.out.println(ca.jiechengsum(3));
    }
}

第2个回答  2015-04-02
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入n:");
int sum = 0;
int n = sc.nextInt();
for (int i = 1; i <= n; i++) {
int tmp = 1;
for (int j = 1; j <= i; j++) {
tmp *= j;
}
sum += tmp;
}
System.out.println("总和为:" + sum);
}

第3个回答  推荐于2017-09-10
说下思路吧: 递归法:

记:
1!+2!+3!+…+n!= f(n)
显然有: f(n)=n! +f(n-1)
先不考虑溢出问题:
有:
double f(int n){
if (n>1)

return f(n-1) + jiecheng(n)

return 1;

}
double jiecheng(n){
return ***;//这块懒得写了。

}
第4个回答  2015-04-02
import java.util.*;
public class test6 {
/**
* @param args
*/
public static void main(String[] args) {

int rst=1;
int n=4;
int sum=0;
for(int i=1;i<=n;i++){//外层循环选择阶乘数字
int key=i;
//计算阶乘
rst=rst*i;
//计算阶乘和
sum=sum+rst;
}
System.out.println("阶乘和为"+sum);
}
}追问

怎么int n=4 ?

int key=i 干嘛
你也没用key呀?

追答

int key =i 没有用的 忘记删了

相似回答