Hello,大家好!我是程序員阿飛!這兩天由於家裏網線讓豆豆(金毛)咬斷了,所以沒能按時更新學習內容。今天週末不上班,所以找來了維修師傅,將網線接好了。因此,今天將前兩天未及時更新的內容補上。好了,廢話不多說了,下面我們進入正題。今天,我學習的內容是:遞歸算法。
1、遞歸算法
遞歸算法指的是:直接或者間接調用本身自己方法的算法。
2、應用實例
(1)對於字符串ABCDEFG,輸出GFEDCBA,要求使用遞歸
package com.now.coder;
public class Demo01 {
/**
* @content 對於字符串ABCDEFG,輸出GFEDCBA,要求使用遞歸
* @since 2019-3-9
* @author rain
*/
public static void main(String[] args) {
String str = "ABCDEFG";
System.out.println(str);
help(0,str);
}
public static void help(int index,String str){
if(index>=str.length()){
return;
}else{
help(index+1,str);
}
//charAt()方法用於返回指定索引處的字符
System.out.print(str.charAt(index));
}
}
(2)一列數的規則如下: 1、1、2、3、5、8、13、21、34 ,求第30位數是多少?使用遞歸實現
public class FibonacciSequence {
public static void main(String[] args){
System.out.println(Fribonacci(9));
}
public static int Fribonacci(int n){
if(n<=2)
return 1;
else
return Fribonacci(n-1)+Fribonacci(n-2);
}
}
3、遞歸算法的優缺點
(1)優點:代碼更簡潔清晰,可讀性更好。
(2)缺點:空間消耗大,系統可能撐不住。