函数递归定义
程序调用本身的编程技巧称为函数递归。一个函数或程序在其定义或说明中有直接或间接调用自己的一种方法,它通常把一个大型复杂的问题层层转换成与原问题相似的规模较小问题求解,递归策略只需要少量的程序就可以描述出解题过程中所需要的多次重复计算 大大减少了程序的代码量。
主要思考方式:大事化小
递归的必要条件
1、存在限制条件,当满足这个限制条件的时候 递归便不再进行
2、每次递归之后越来越接近这个限制条件
初识函数递归(例题)
例1:将1234按1 2 3 4 重新排列
解题思路:创建函数 拆出求解所需的1 2 3 4
这里的递归函数就是print()
过程图解(黑色√意为满足条件)
函数递归与迭代
先看题:
要求描述第N个斐波那契数
首先使用递归法解决:
正常运算诸如5、6、7、8...时表现正常
当我们输入如50、60...系统长期停止在了如下情况
这是由于重复计算过多 导致系统计算迟缓
此时来看,仍然采用递归法是不可取的。
此时我们采用循环的方法来看:
那么此时无论输入的数如何 都能迅速地得到输出结果
二者应合理选用