1.递归实现
/**
* 求1!+2!+3!+4!+5!+...+n!
* 非递归
*
*/
public class TestJC {
public static void main(String[] args) {
long l = Cal(4);
System.out.println(l);
}
public static long Cal(int n){
int sum = 0;
int m = 1;
for(int i=1;i<=n;i++){
m*=i;
sum += m;
}
return sum;
}
}
2.非递归实现
/**
* 求1!+2!+3!+4!+5!+...+n!
* 递归实现
*
*/
public class TestJC2 {
public static void main(String[] args) {
long l = Cal(4);
System.out.println(l);
}
public static long Cal(int n){
int sum = 0;
for(int i=1;i<=n;i++){
sum += count(i);
}
return sum;
}
public static long count(int i){
if(i == 1)
return 1;
else
return i*count(i-1);
}
}