递归

简介: 递归两个要素1.递归边界2.递归的逻辑——递归"公式"递归的过程一定有参数的变化,并且参数的变化,和递归边界有关系.在难度较大的题目中,这两者均不容易直接得到.

递归两个要素

1.递归边界

2.递归的逻辑——递归"公式"

递归的过程一定有参数的变化,并且参数的变化,和递归边界有关系.

在难度较大的题目中,这两者均不容易直接得到.

1.Fibonacci数

我们直到Fibonacci数的递推公式为:F(0)=F(1)=1,F(n)=F(n-1)+F(n-2) n>=2;

这个明显地给出了递归边界n=0或1的时候F(n)的值,和递归逻辑F(n)=F(n-1)+F(n-2),即递推公式.所以这个递归函数不难书写

img_9cad046ebf7597e9be656e588068e09f.png

2.阶乘

阶乘的递归公式为:

img_70890b5b3e0e5ee86fabff9053abaebd.png

代码如下:

img_78f5667bce4c6871b8c88e11ccc3c8bf.png

3、递归实现二分查找

img_249cef0e406f0b260b0d92f832c51dcf.png
相关文章
|
5月前
|
存储
【递归知识+练习】
【递归知识+练习】
42 0
|
6月前
C 递归
C 递归。
20 2
|
8月前
递归
递归
34 0
|
10月前
|
Java 数据安全/隐私保护 决策智能
字符串全排列(递归)
字符串全排列,递归的应用
111 0
|
10月前
|
算法 Python
递归的使用
递归的使用
32 0
|
算法 索引
第 6 章 递归
简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量,递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。
52 0
|
机器学习/深度学习
简单的了解一下递归
在编程中,递归大家肯定都不陌生了吧,今天我们来总结总结有关于递归的东西。
|
机器学习/深度学习 算法
『递归』整数划分
根据n和m的关系,考虑一下几种情况: (一)当n==1时,无论m的值为多少 ,只有一种划分,即{1} (二)当m==1 时,无论n的值为多少,只有一种划分,即1个n,{n} 。 (三)当n==m时,根据划分中是否包含n,可以分为以下两种情况: (1)划分中包含n的情况,只有一个,即 {n} (2)划分中不包含n的情况,这时划分中最大的数字也一定比n小,即n的所有(n-1)划分,即q(n,n-1)。 因此q(n,m)=1+q(n,n-1) (四)当n<m时,由于划分中不可能出现负数,因此就相当于q(n,n) (五)当n>m 时,根据划分中是否包含最大值m,可以分为以下两种情况:
130 0
递归就是这么简单
来自我的好朋友,EvilSay 投稿的文章。我稍微润色了一下,以下是原文: