递归在程序语言中简单的理解是:方法自己调用自己。
递归其实和循环是非常像的,循环都可以改写成递归,递归未必能改写成循环,这是一个充分不必要的条件。
那么,有了循环,为什么还要用递归呢??在某些情况下(费波纳切数列),使用递归会比循环简单很多很多。
package com.ycu.paixu;
public class DiGui {
public static void main(String[] args) {
// TODO Auto-generated method stub
//int [] arrays = {1,1,2,3,5,8,13,21,34};//前两项之和等于第三项
int fibonacci = fibonacci(10);
System.out.print(fibonacci);
}
public static int fibonacci(int a ){
if(a==1){
return 1;
}
if(a==2){
return 1;
}
return fibonacci(a-2)+fibonacci(a-1);
}
}