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)缺点:空间消耗大,系统可能撑不住。