一:递归
1.什么是递归
自己调用自己
public class Recursion {
public static void main(String[] args) {
//递归就是自己调用自己
//test1(); //stsckoverflowerror
test2(0);
}
//递归示范
public static void test1(){
int i = 0;
System.out.println(i);
test1();
}
//通过递归实现循环输出
public static void test2(int i){
System.out.println(i);
if (i == 100){
return;
}
test2(++i);
}
}
2.三角数字
该数列的第 n 项 = 第(n - 1)项 + n
n = 1 2 3 4 5
第n项= 1 (1+2) (3+3) (6+4) (10+5)
public class Triangle {
public static void main(String[] args) {
int number = number1(3);
System.out.println(number);
int number2 = number2(100);
System.out.println(number2);
}
//使用递归求三角数字
public static int number2(int n){
if (n == 1){
return 1;
}else{
return n+number2(n-1);
}
}
//使用常规方式求三角数字
public static int number1(int i){
int num = 0;
while (i >0){
num = num + i;
i--;
}
return num;
}
}
3.Fibonacci数列
该数列的第一项为 0 ,第二项为 1 , 第 n 项 = 第(n-1)项+第(n-2)项
public class Fibonacci {
public static void main(String[] args) {
int number = getNumber(8);
System.out.println(number);
}
//递归求斐波那契数列,已知 第一项 = 0;第二项 = 1;第n项 = 第n-1项 + 第n-2项
public static int getNumber(int n){
if (n == 1){
return 0;
}else if(n == 2){
return 1;
}else{
return getNumber(n-1)+getNumber(n-2);
}
}
}