天天看點

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;
        }
    }
}