第1个回答 2011-10-10
public static void main(String[] args) {
int res = factorialSum(10);
System.out.println(res);
}
public static int factorialSum(int num) {//求和
int res = 0;
for (int i = 1; i <= num; i++) {
res += factorial(i);
}
return res;
}
public static int factorial(int num) {//每个数的阶乘
int result = 1;
for (int i = 1; i <= num; i++) {
result = result * i;
}
return result;
}
第2个回答 2011-10-10
上面的方法全部本质一样,时间复杂度都为O(N^2),没本质区别,随便用一个就行了。你想速度快的把复杂度降为O(N)的就用个数组把阶乘结果保留,最后加法运算。
第3个回答 推荐于2018-02-28
test
{
public static void main(String args[])
{
long sum=0,a=1;
long i=1;
while(i<=10)
{
if(i>=1)
sum=sum+a;
i++;
a=a*i;
}
System.out.println("sum="+sum);
}
}本回答被提问者和网友采纳
第4个回答 2011-10-10
int sum=0;
for(int n=1;n<10;n++)//1--10 10个数
{
jc=1;
for(int i=1;i<=n;i++)//每个算阶乘
{
jc=jc*i;
}
sum+=jc;
}