用循环较易实现,递归只实现了求单个数的阶乘。代码如下:
//求 1!+2!+...+10!
public class Jiechenghe {
public static long func(int num){ //用循环求各阶乘之和
long result=0;
long f=1;
for(int i=1;i<=num;i++){
f=f*i; //求各个阶乘
result=result+f;//前几个阶乘的和
}
return result;
}
public static long func1(int num){ //递归求单个数的阶乘
if(num==1)
return 1;
return num*func1(num-1);
}
public static long func2(int num){ //循环调用递归函数求和
long result=0;
while(num!=0){
result+=func1(num);
num--;
}
return result;
}
public static void main(String[] args) {
System.out.println(func2(3));
}
}