用Java求S=1!+2!+……+n!

用Java求S=1!+2!+……+n!
要源代码,最好用到了for循环语句,谢谢!

///:filename JC.java
public class JC {
//计算方法
public long getResult(int n){
//mul保存阶乘临时数据,total保存累加后的数据
long mul,total=0;
for(int i=1; i<=n; i++){
//阶乘处理开始
mul=1;
for(int j=1; j<=i; j++){
mul*=j;
}

//开始累加
total+=mul;
}

return total;
}
//程序入口
public static void main(String[] args){
long l = new JC().getResult(5);
System.out.println(l);
}
}
///:~end
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-10-31
public class Main{
public static void main(String[] args){
int n=Integer.parseInt(args[0]);
double sum=0;
for(int i=1;i<=n;i++){
sum+=factorial(i);
}
System.out.println("Result:"+sum);
}
public static double factorial(int n){
if(n==1) return 1;
else return n*factorial(n-1);
}
}
第2个回答  2008-10-31
int s=0;
for(int i=1;i<=n;i++)
{
int r=0;
for(int j=1;j<=i;j++)
{
r=r*j;
}
s+=r;
}
System.out.println(s);
第3个回答  2008-10-31
这道题用递归的方法很容易明白,以n=5为例,已测试过的程序如下:

public class Digui {
public static int sss(int n){
int result = 0;
if(n==1){
result=1;
}else{
int sa=1;
for(int i=1;i<n+1;i++){
sa=sa*i;
}
result = sss(n-1)+sa;
}
return result;
}
public static void main(String[] args) {
int sssss = sss(5);
System.out.println(sssss);
}
}

当然,也可以把n改为输入方式计算结果,这里不再赘述
相似回答