📅  最后修改于: 2023-12-03 14:54:49.734000             🧑  作者: Mango
在2016年7月的UGC NET CS Examination中,问题43要求编写一个递归函数,该函数可以计算一个给定数字的阶乘。本题是一个比较简单的递归函数编程问题。
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
以上是Python语言中的一个示例实现。该递归函数使用了一个基本的终止条件,即当输入n等于1时返回1,否则递归调用本身来计算n-1的阶乘。
在调用递归函数时需要注意剩余堆栈空间是否足够,否则算法会陷入无限递归。同时,在Python语言中递归深度也受到限制,可以通过sys模块中的setrecursionlimit()函数来调整这一限制。
此外,还可以通过非递归方法(例如迭代)来计算阶乘,这种方法通常效率更高且不会出现栈溢出等问题。