Java递归算法 阶乘N! 斐波那契数列

递归算法

递归函数就是一个函数直接或间接的调用自己本身。递归算法是把一个问题转化成很多个相似的问题,然后递归调用函数来表示问题的解。

解决问题的特点

  1. 递归就是在过程或函数里调用了自身
  2. 在使用递归时,必须有递归的结束条件
  3. 使用递归算法解题通常相对简洁,但效率较低
  4. 在解题中,递归次数(调用自身)过多容易造成栈溢出,导致结果错误

算法要求

  1. 每次调用在规模上都有所缩小
  2. 相邻两次重复之间有着紧密的联系,前一次要为后一次做准备(前一次的输出作为后一次的输入)//(题外话:好像有一丝循环的味道(~ ̄▽ ̄)~)
  3. 每次递归调用都要有条件,没有条件的递归调用将会成为死循环而不能正常结束,在问题的规模极小时,必须用直接给出解答,而不再进行递归调用。

示例

1. 斐波那契数列的第N项的值

斐波那契数列的定义:
f(0)=0,f(1)=1
对于n>1时,有f(n)=f(n-1)+f(n-2)
0,1,1,2,3,5,8,13,21,34,55…

public static void main(String[] args) {
   
		System.out.println(fibonacci(9))
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值