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