目录
1.递归的定义:函数调用其本身
2.递归的案例一:我们看如下数列,一个自然数的数列
java实现:
/**
* 定义一个方法 来代表 f(n)
* @param n
* @return 递归的方式必须要有返回值
*/
public static int recursion(int n){
// 首先定义出方法的出口
if(n==1){
return 1;
}
return recursion(n-1) +1;
}
3.我们能否只是用递归关系来代表递归呢?我们来看第二个数列
4.经典的斐波那契数列
/**
* 斐波那契
* @param n
* @return
*/
public static int Fibonacci(int n){
if(n == 1){
return 1;
}else if(n == 2){
return 1;
}else {
return Fibonacci(n -1 ) + Fibonacci(n-2);
}
}
5.经典题目 1 + 2 + 3 + 4 + … + 100 = 5050
/**
* 1 + 2 + 3 + 4 + ... + n
* @param n
*/
public static int sum(int n){
if(n == 1) {
return 1;
}else {
return sum(n-1) + n;
}
}
6.求一个数组当中数的和
public static int sum(int[] arr,int n){
if(n == 0){
return arr[0];
}else {
return sum(arr,n-1) + arr[n];
}
}