递归有两种表示:
直接调用和间接调用;
利用阶乘递归遍历求阶乘和:
//方法一:主要利用阶乘递归
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 4; i++){
//通过遍历的方式,求得所有数的阶乘并累加。
sum += new DiGuiPractise2().factorial(i);
}
System.out.println(sum);
}
long multiply ;
public long factorial(int n){
if(n == 1){
return 1;
}
multiply = n*factorial(n-1);
return multiply;
}
利用递归求阶乘和:
public static void main(String[] args) {
System.out.println(new DiGuiPractise2().factorail(4));
}
long multiply ;
public long factorial(int n){
if(n == 1){
return 1;
}
multiply = n*factorial(n-1);
return multiply;
}
long sum = 0;
public long factorail(int n){
if(n == 1){
return 1;
}
//这里主要思想:n的阶乘+(n-1)的阶乘和就是n的阶乘和,只要求得前一个数阶乘和即可
sum = factorial(n) + factorail(n-1);
return sum;
}