递归法求n的阶乘(递归)
摘要 大家好,我是小典,我来为大家解答以上问题。递归法求n的阶乘,递归很多人还不知道,现在让我们一起来看看吧!程序调用自身的编程技巧称为...
大家好,我是小典,我来为大家解答以上问题。递归法求n的阶乘,递归很多人还不知道,现在让我们一起来看看吧!
程序调用自身的编程技巧称为递归( recursion)。
构成递归需具备的条件有:
1、子问题须与原始问题为同样的事,且更为简单。
2、不能无限制地调用本身,须有个出口,化简为非递归状况处理。
递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。
扩展资料:
递归一般用于解决三类问题:
1、数据的定义是按递归定义的。(Fibonacci函数,n的阶乘)
2、问题解法按递归实现。(回溯)
3、数据的结构形式是按递归定义的。(二叉树的遍历,图的搜索)
递归的缺点:
递归解题相对常用的算法如普通循环等,运行效率较低。因此,应该尽量避免使用递归,除非没有更好的算法或者某种特定情况,递归更为适合的时候。在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储,因此递归次数过多容易造成栈溢出。
参考资料来源:搜狗百科-递归
本文到此讲解完毕了,希望对大家有帮助。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时候联系我们修改或删除,多谢。