f(10)=1!+2!+3!+…+10!
大家都知道可以用两个for循环得出结果,所以在这我来说一下用递归实现。
设 f(n)=1!+2!+3!+…+n!
f(2)=2!+1!=2!+f(1)
f(3)=3! + (2!+1!)=3!+f(2)
···
···
f(n-1)=(n-1)!…+3!+2!+1! =(n-1)!+f(n-2)
f(n)=n! + ((n-1)!…+3!+2!+1!)=n!+f(n-1)
public class Test {
public static void main(String[] args) {
System.out.println(sum(4));
}
//先用递归得到n!
public static int jiec(int num){
if(num==1){
return 1;
}
return num = num*jiec(num-1);
}
//设置f(n)方法
public static int fn(int num){
if(num==1){
return 1;
}
return jiec(num)+fn(num-1);
}
}
如果有其他更好的方法,欢迎大家在下面留言啊!!!