天天看点

java递归的使用

5.5递归

程序调用自身的编程技巧成为递归

计算斐波那契数列
    
求任意一项对应的斐波那契数列的值。
    
1,1,2,3,5,8,13,21......
           
public static long feibo(int n){
	long num1 = 1;
	long num2 = 1;
	long cur = num1+num2;
for(int i = 4;i<=n;i++){
	num1 = num2;
	num2 = cur;
	cur = num1+num2;
}
	return cur;
}
           
  • 递归的优势
    • 编写简单
    • 数据结构而言;树,堆这样的结构使用递归特别简单
  • 劣势
    • 耗内存
    • 时间成本高
import java.util.Scanner;
public class test {
    public static void main(String[] args) {
        /**
         * 求阶乘
         */
        //输入一个数
        Scanner scanner=new Scanner(System.in);
        int getin = scanner.nextInt();
        int factorial = Factorial(getin,1);
        System.out.println(factorial);
    }
    public  static  int Factorial(int getin,int num){
        if (getin>1){
             num=num*getin;
            return Factorial(getin-1,num);
        }else {
            return num;
        }
    }
}