Java中递归思想的体现(菲波那切数列中指定项的大小)

递归是一种算法思想,其原理是通过某一段代码的不断自身调用来将复杂的问题简单化,但必须使其朝着可控的方向变化,同时设定约束条件保证其在有限步骤内结束并返回结果。

下面通过求解斐波那契数列中第n项的大小来说明递归算法的实现逻辑。

public class feibonaqieshulie
{
	public static void main(String[] args)
	{
		A1 a = new A1();
		double b = a.fbnq(12);
		System.out.println(b);
	}
}

class A1
{
    //定义方法进行斐波那契数列第n项的求解
	public double fbnq(int n)
	{
        //约束条件1
		if(n == 0)
		{
			return 0;
		}
        //约束条件2
		else if(n == 1)
		{
			return 1;
		}
		else
		{
            //递归的前进方向
			return this.fbnq(n - 1) + this.fbnq(n - 2);
		}
	}
}

由于斐波那契数列的特殊性, 如果通过正常逻辑从第一项开始逐一计算,那么问题会非常复杂。于是采用递归算法,斐波那契数列的第n项是第n-1项与第n-2项的和,第n-1项等于第n-2项与第n-3项的和,同理,每一项都等于前两项的和,因此不断调用自身,求解之前项的大小,知道前进到第1项和第0项,因为这两个条件是已知的,因此运行到该约束条件后开始返回数值,得到最终结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Praise_LIFE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值