首页 > 编程语言 >Java-用递归的思想求斐波那契数列第n项的值

Java-用递归的思想求斐波那契数列第n项的值

时间:2023-12-16 22:04:03浏览次数:27  
标签:求斐波 return 递归 int 多路 static Java 那契 public

一、思想-多路递归

多路递归multi recursion就是在每次递归时包含多次(大于一次)的自身调用。也就是一个问题会被拆分成多个子问题。多路递归比单路递归在分析时间复杂度上比较复杂一些。

二、斐波那契数列


三、例子

以 n = 4 为例,当我们用下面(第四部分)的代码实现时,这个多路递归的求解过程如下图所示。

Java-用递归的思想求斐波那契数列第n项的值_递归

我们可以看到,


四、Java代码实现

1.求斐波那契数列的第n项

/*递归函数*/
    public static int f(int n){
			//写两个递归出口
        if(n == 0){
            return 0;
        }
        if(n ==1){
            return 1;
        }
			//调用两次自身的函数
        int x = f(n - 1);//要先走完这一步才能继续下面的代码
        int y = f(n - 2);
        return x + y;
    }

2.完整代码 

用 n = 8来测试,结果为21.

public class E06Fibonacci {

    public static void main(String[] args) {
        int f = f(8);
        System.out.println(f);
    }

    /*递归函数*/
    public static int f(int n){

        if(n == 0){
            return 0;
        }
        if(n ==1){
            return 1;
        }

        int x = f(n - 1);
        int y = f(n - 2);
        return x + y;
    }
}

标签:求斐波,return,递归,int,多路,static,Java,那契,public
From: https://blog.51cto.com/u_15535912/8854256

相关文章

  • 命令行窗口java运行报错:Error: A JNI error has occurred,please check your installa
     jre匹配问题解决方法:第一步:右键点击构建路径。 第二步将原来的系统库移除第三步添加系统库 第四步选择与自己电脑java相符的执行环境 ......
  • 无涯教程-Java - int length()函数
    此方法返回此字符串的长度。长度等于字符串中16位Unicode字符的数量。intlength()-语法这是此方法的语法-publicintlength()intlength()-返回值此方法返回此对象表示的字符序列的长度。intlength()-示例importjava.io.*;publicclassTest{publicstati......
  • 无涯教程-Java - int lastIndexOf(String str)函数
    如果string参数作为该对象中的子字符串出现一次或多次,则它返回最后出现的第一个字符的索引,如果没找到,则返回-1。intlastIndexOf-语法这是此方法的语法-publicintlastIndexOf(Stringstr)这是参数的详细信息-str   -  一个字符串。intlastIndexOf-返回值......
  • Java正则操作类Pattern和Matcher​详解
    Java正则操作类Pattern和MatcherPattern类Pattern位于java.util.regex包中,是正则表达式的编译表示形式,此类的实例是不可变的,可供多个并发线程安全使用。Pattern类没有公共构造方法。要创建一个Pattern对象,你必须首先调用其公共静态compile方法,它返回一个Pattern.split(CharSeque......
  • Storm 集群的搭建及其Java编程进行简单统计计算
    一、Storm集群构建编写storm与zookeeper的yml文件 stormyml文件的编写具体如下:version:'2'services:zookeeper1:image:registry.aliyuncs.com/denverdino/zookeeper:3.4.8container_name:zk1.cloudenvironment:-SERVER_ID=1......
  • 无涯教程-Java - int lastIndexOf(String str, int fromIndex)函数
    此方法返回最后一次出现的指定子字符串在此字符串内的索引,从指定索引(fromIndex)开始向后搜索。intlastIndexOf-语法publicintlastIndexOf(Stringstr,intfromIndex)这是参数的详细信息-fromIndex - 从中开始搜索的索引。str        - 一个......
  • JavaScript 引擎 V8 年度回顾:新编译器、修改基础架构、改进 GC……
    V8官方博客回顾了2023年的重要变化:通过创新的性能优化,V8不断突破Web领域的可能性界限。比如引入新的中间层编译器,对顶层编译器基础架构、运行时和垃圾回收进行多项改进,从而全面提升速度。除了性能改进之外,V8团队还为JavaScript和WebAssembly添加了许多新功能。比如通......
  • Java jxl操作excel模板
    jxl操作excel模板创建工作簿FileexcelFile=newFile("fileName.xls");WritableWorkbookwtwb=Workbook.createWorkbook(excelFile);//创建工作簿创建工作表WritableSheetsheet=wtwb.createSheet(title,0);//创建sheet表设置默认列宽sheet.getSettings().s......
  • 无涯教程-Java - int lastIndexOf(int ch, int fromIndex)函数
    此方法返回此对象表示的字符序列中该字符最后一次出现的索引,该索引小于或等于fromIndex,如果没找到,则返回-1。intlastIndexOf-语法publicintlastIndexOf(intch,intfromIndex)这是参数的详细信息-ch         - 一个字符。fromIndex  - 从......
  • 无涯教程-Java - int lastIndexOf(int ch)函数
    此方法返回此对象表示的字符序列中该字符最后一次出现的索引,如果没找到,则返回-1。intlastIndexOf-语法这是此方法的语法-intlastIndexOf(intch)这是参数的详细信息-ch   - 一个字符。intlastIndexOf-返回值此方法返回索引位置。intlastIndexOf-示例im......