函数递推式

简介: 函数递推式

函数递推式简单理解就是


函数+分支语句

主要作用是方便我们的计算

在其中有两个特别重要的特征:


1、基例:不需要再次递推的方法

2、链条:需要进行多次递推的方法

例如:我们要把字符串反过来,没有学习递推式之前我们写的代码:


1. str1=input()
2. print(str1[::-1])


但我们要让字符串反过来的代码更加优秀、完美、在什么地方都可以调用,这个时候就需要使用函数递推式了,如下


def str_reverse(n):
    """功能:反转字符串
       n:需要反转的字符串
    """
    if n=="":    #递推基例
        return n #当字符串为空时返回的是它本身
    else:        #递推链条
        return str_reverse(n[1:])+n[0]
print(str_reverse(input()))  #调用函数递推式


这段代码的运行过程如下


输入 输出
n=你好
n=好

n=None 好你


先是将“你”放在最后,然后把好带入函数中再执行一次


再例如,我们使用函数递推式解决n!


def factorial(n):
    """功能:计算数值的阶乘
       n:需要阶乘的数
    """
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)
print(factorial(int(input()))


比如我输入的是5


内部 返回
5*fact(4) 120
4*fact(3) 24
3*fact(2) 6
2*fact(1) 2
1*fact(0) 1

函数递推式可以方便我们对函数体的多次利用,用最少行的代码完成更复杂的运算

目录
相关文章
|
5月前
|
算法 测试技术 C#
C++二分查找算法:阶乘函数后 K 个零
C++二分查找算法:阶乘函数后 K 个零
|
7月前
|
Python
递推方程
递推方程是一种数学方程,其中未知量的值被表示为先前已知量值的函数。递推方程通常具有递归的形式,即一个或多个变量被递归地定义为同一变量的函数。递推方程的一个关键特征是,解决方案通常可以通过迭代计算得到,而不是直接求解。递推方程广泛应用于数学、物理、计算机科学等领域。
69 0
|
机器学习/深度学习
求n的阶乘(递归法和循环法
根据阶乘的计算方法:n!= 1 * 2 * 3*…*n,我们在一个for循环完成 n 次乘法运算。注意因为是连乘,最终阶乘结果可能会非常大所以我们在Fac函数中用 long long 类型的变量来记录阶乘的结果。
|
机器学习/深度学习 算法 C语言
函数递归+青蛙跳台阶——“C”
函数递归+青蛙跳台阶——“C”
|
算法
秒懂算法 | 递推方程求解方法
时间复杂度和空间复杂度表示为递推方程的两种求解方法。
236 1
秒懂算法 | 递推方程求解方法
|
机器学习/深度学习 算法
斐波拉契数列的递推递归求解算法
斐波拉契数列的递推递归求解算法
81 0
你是真的“C”——函数递归详解青蛙跳台阶
手把手教学——函数递归详解汉诺塔+青蛙跳台阶问题
82 0
你是真的“C”——函数递归详解青蛙跳台阶
|
算法
【递归与递推 3】AcWing 717. 简单斐波那契(求解斐波那契数列的若干方法)
【递归与递推 3】AcWing 717. 简单斐波那契(求解斐波那契数列的若干方法)
【递归与递推 3】AcWing 717. 简单斐波那契(求解斐波那契数列的若干方法)