一、什么是递归
递归是指在定义自身的同时又出现了对自身的直接或者间接引用,是数学在计算机科学中是一种非常有效的问题求解方法。
递归的基本思想是把规模大的复杂问题转换为相似的规模小的子问题老来解决。
递归就是自己调用自己称为递归。递推和回归。
示例1:
f(n)=1 当n=1;
f(n)=n*f(n-1);
简单例子:
斐波拉契数列
public class fibonacci{
//斐波那契数列
public static void main(String[] args){
int s=fib(5);
System.out.println(s);
}
public static int fib(int n){
if(n==1){
return 0;
}if(n==2){
return 1;
}else{
return fib(n-1)+fib(n-2);
}
}
}
递归求1-100和
public class RecursionTest01{
public static void main(String[] args){
int c=sum(100);
System.out.println(c);
}
public static int sum(int n){
if(n==1){
return 1;
}else{
return sum(n-1)+n;
}
}
}
求阶乘
public class RecursionTest{
public static void main(String[] args){
int c=fact(9);
System.out.println(c);
}
public static int fact(int n){
if(n==1){
return 1;
}else{
int s =n*fact(n-1);
return s;
}
}
}