Java教程

函数的递归

本文主要是介绍函数的递归,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

含义:递归就是函数自己调用自己。

注意:使用递归需要设置结束条件,若无结束条件,程序会造成内存溢出。

案例:阶乘计算

什么是阶乘?

5的阶乘就是:5 * 4 * 3 * 2 * 1

3的阶乘就是:3 * 2 * 1

代码示例:

# 5的阶乘常规写法
def get_while_num(num):
    """
    方法用于阶乘计算()常规写法
    """
    # 定义变量
    i = 1
    # 存储结果
    result = 1
    while i <= num:
        result *= i
        i += 1
    return result

print(get_while_num(5))
# 输出结果:120

程序执行逻辑:

5的阶乘就是:5 * 4 * 3 * 2 * 1

第一次循环:num = 5 ,i = 1,1 <= 5,result = 1 * 1 = 1 ;

第二次循环:num = 5 ,i = 2,2 <= 5,result = 1 * 2 = 2 ;

第三次循环:num = 5 ,i = 3,3 <= 5,result = 2 * 3 = 6 ;

第四次循环:num = 5 ,i = 4,4 <= 5,result = 6 * 4 = 24 ;

第五次循环:num = 5 ,i = 5,5 <= 5,result = 24 * 5 = 120 ;

当num = 5 ,i = 6,6 > 5,程序结束

# 注意:写递归的时候,一定要注意递归的出口在哪里

# 3的阶乘递归写法

def getNumber(num):

    """
    使用递归计算阶乘
    """
    if num > 1:
        return num * getNumber(num-1)
    else:
        return num

print(getNumber(3))

# 输出结果:6

程序执行逻辑:

# 第三种写法

def test3():
    return 3

def test2():
    return 2 * test3()

def test1():
    return 1 * test2()

print(test1())

# 输出结果:6

程序执行逻辑:

什么时候可以用递归?

当你不确定循环的个数的时候,可以使用递归,只需要你定义什么时候结束就可以了

这篇关于函数的递归的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!