1,定义:方法自己调用自己,每次调用时传入不同的变量,从而将问题拆分,使编程者更易解决,并使代码更简洁。
2,特点:必须有终止条件,不能无限次调用本身,否则会报错,内存溢出。
自身调用:原问题和子问题的求解都是调用自身的同一个函数。构造函数不能被调用。
3,实例:
递归求和:
import java.util.Scanner;
public class diguiqiuhe {
public static void main(String[]args){
Scanner rd=new Scanner(System.in);
int n;
System.out.println("请输入n的值");
n=rd.nextInt();
n= getsum(n);
System.out.println(n);
}
private static int getsum(int n){
if(n==1){
return 1;
}
else {
return n+getsum(n-1);
}
}
}
求阶乘
import java.util.Scanner;
public class diguijiecheng {
public static void main(String[]args){
Scanner rd=new Scanner(System.in);
int n=rd.nextInt();
n=factor(n);
System.out.println(n);
}
private static int factor(int n){
if(n==1){
return 1;
}
else {
return n*factor(n-1);
}
}
}
斐波那契数列
import java.util.Scanner;
public class diguishulie {
public static void main(String[]args){
Scanner rd=new Scanner(System.in);
System.out.println("请输入n的值");
int n=rd.nextInt();
n=factor(n);
System.out.println(n);
}
private static int factor(int n){
if (n<=2){
return 1;
}
else {
n=factor(n-2)+factor(n-1);
return n;
}
}
}