广东湘恒智能科技有限公司
主营产品: 西门子变频器,西门子PLC\西门子模块、西门子触摸屏、西门子伺服电机、西门子工控机、西门子集成系统、西门子低压、西门子控制单元、西门子CPU,广东省西门子授权代理商,等
SIEMENS南宁市西门子中国一级代理-西门子变频器伺服电机一级总代理

大家知道5的阶乘计算是

5!=5 * 4 * 3 * 2 * 1

那我们如何实现n!的阶乘计算呢?

可以使用for循环完成,也可以使用递归算法来实现

接下来重点介绍使用递归算法来实现阶乘计算。


递归算法概念



递归算法是一种直接或者间接调用自身函数或者方法的算法。说简单了就是程序自身的调用。

图片

图片


递归算法在实际应用中非常广泛,主要应用于以下场景:

1、树形结构处理。递归算法适用于处理树形结构,如二叉树、多叉树、字典树等,可以通过递归遍历树结构,处理节点的数据。


2、排序算法。在排序算法中,快速排序和归并排序等采用了分治法的思想,即将大问题分解为小问题并分别解决,然后将这些小问题的解合并起来得到整个问题的解。


3、动态规划算法。动态规划算法中,递归也是一种常用的解决方式,可以将大问题分解为小问题并分别解决,然后将这些小问题的解合并起来得到整个问题的解。


4、迷宫问题。递归可以用于解决迷宫问题,通过回溯算法实现迷宫的求解。


5、数学问题。递归可以解决各种数学问题,如八皇后问题、汉诺塔、阶乘问题等。


6、算法中的问题。递归也应用于一些算法中,如二分查找、分治算法等。

斐波那契数列。递归可以用于计算斐波那契数列,通过函数调用栈的进栈、出栈过程体现出来。



递归算法实现




plc中如何去实现递归算法呢?

算法:我们建立一个FC功能块,通过自己调用自己来实现算法

例如:5!=5 * FC(4)

递归算法的设计要素

递归思维是一种从下向上的思维方式,使用递归算法往往可以简化我们的代码,而且还帮我们解决了很复杂的问题。递归算法的难点就在于它的逻辑性,一般设计

递归算法需要考虑以下几点:

1、明确递归的终止条件

2、提取重复的逻辑,缩小问题的规模不断递去

3、给出递归终止时的处理办法

程序:

图片

图片

图片

图片


展开全文
相关产品
拨打电话 微信咨询 发送询价