内容正文:
递归算法
2
3
递归的表现
德罗斯特效应是递归的一种视觉形式。图中女性手持的物体中有一幅她本人手持同一物体的小图片,进而小图片中还有更小的一幅她手持同一物体的图片,依此类推。
4
递归的表现
我们在两面相对的镜子之间放一根正在燃烧的蜡烛,我们会从其中一面镜子里看到一根蜡烛,蜡烛后面又有一面镜子,镜子里里又有一根蜡烛……这也是递归的表现。
5
什么是递归算法?
递归算法:递归做为一种算法在程序设计语言中广泛应用。它是指函数/过程/子程序在运行过程中直接或间接调用自身而产生的重入现象。
递归算法的基本思想:是把规模较大的、较难解决的问题变成规模较小的、容易解决的同一问题,规模较小的问题又变成规模更小的问题,当问题小到一定程度时,可以直接得出它的解,从而得到原来问题的解。即采用“大事化小、小事化了”的基本思想。
6
递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
7
实例:
(1)利用递归方法编写一求N的阶乘。
分析:
根据
可以推出下列式子:
Function G(n As Integer) As Long
If n = 1 Then G = 1 Else G = n * G(n - 1)
End Function
Private Sub Command1_Click()
Dim n As Integer
n = Val(Text1.Text)
Text2.Text = Str(n) & "的阶乘是" & Str(G(n))
End Sub
8
7/28/2021
4!= 4 *3!
3!= 3 *2!
2!= 2 *1!
1!= 1
5!= 5*4!
2!=2*1=2
3!=3*2!=6
4!=4*3!=24
5!=54*!=120
5!演示如下
实例
Private Function f(x As Single, n As Integer) As Single
If n = 0 Then
f = 1
Else
If n Mod 2 = 1 Th