- 一定要设置方法递归调用的结束条件;
- 每一次调用的过程中一定要修改传递的参数条件
public class JavaDemo{
public static void main(String args[]){
System.out.println(sum(100));
}
public static int sum(int num){ //执行累加
if(num == 1){ //不累加
return 1;
}
return num + sum(num - 1); //递归调用
}
}
递归处理不当会造成内存溢出
在进行阶乘计算的时候要考虑选择的数据类型,只能使用double
计算1!+2!+3!+......+90!
public class JavaDemo{
public static void main(String args[]){
System.out.println(sum(90));
}
public static double sum(int num){
if(num == 1){
return 1;
}
return fan(sum) + sum(num - 1);
}
public static double fan(int num){ //执行累加
if(num == 1){ //不累加
return 1;
}
return num * fan(num - 1); //递归调用
}
}