IT狗

Java中的递归

递归的寄义

递归算法是一种直接大概直接挪用本身函数大概要领的算法,Java递归算法是基于Java言语完成的递归算法。

留意:递归算法必必要有一个明白的递归竣事前提

递归举例

(1) 斐波那契数列

斐波那契数列,又称黄金分割数列、因数学家列昂纳多·斐波那契以兔子滋生为案例而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……
在数学上,斐波纳契数列以以下被以递归的要领界说:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)

求斐波那契数列的第n项的值?

package com.zhoujian.javatext;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        int a = getValue(9);    }    //1、1、2、3、5、8、13、21、34、……    //F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)    public static int getValue(int n)    {        if(n<=0)        {            return 0;        }        else if(n==1)        {            return 1;        }else{            return getValue(n-1)+getValue(n-2);        }    }}

(2) 用递归求n的阶乘

package com.zhoujian.javatext;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        int b = getFactorial(5);    }    public static int getFactorial(int n) {        if (n < 0) {            System.out.println("有效输出,请从头输出!");            return 0;        }else if (n == 1 || n == 0) {            return 1;        }else {            return n * getFactorial(n - 1);        }    }}

此文由 IT狗 编辑,本网站所发布展示的作品/文章版权归原作者所有,任何商业用途均须联系作者!

相关推荐

评论 暂无评论