python3中的递归

本文探讨了Python 3中如何实现递归算法,强调了递归的关键特性——链条和基例,并介绍了如何通过函数结合条件语句来构建递归结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


使用python 3 实现了一些递归算法


递归就是函数调用自身的过程

关键特性:1.链条—>计算过程中存在递归链条
2.基例—>存在一个或多个不需要再次递归的基例
递归构成:
函数 + 条件语句

#######函数+分支结构  链条+基例(函数的计算机运算过程)
def rvs(s):
    if s == "":
        return s
    else:
        return rvs(s[1:])+s[0]  #将字符串反转
rvs("sldfkjsdlkfj")
############斐波那契数列########
def f(n):
    if n==1 or n==2:
        return 1
    else:
        return f(n-1)+f(n-2)
f(10)
##############
def countdown(n):
    if n<=0:
        print('Blastoff!')
    else:
        print(n)
        countdown(n-1)
countdown(3)
#######################
def jiecheng(n):
    if n==0:
        return 1
    else:
        return n*jiecheng(n-1) #n的阶乘
jiecheng(5)
#########汉诺塔###########
count = 0
def hanoi(n,src,dst,mid):
    """
    :param n: 汉诺塔个数
    :param str: 源柱子
    :param dst: 目的柱子
    :param mid: 中间柱子
    :return:0
    """
    global count
    if n == 1:
        print("{}:{}-->{}".format(1,src,dst))
        count += 1
    else:
        hanoi(n-1,src,mid,dst)
        print("{}:{}-->{}".format(n,src,dst))
        count += 1
        hanoi(n-1,mid,dst,src)
hanoi(3,"A","C","B")
print(count)
#########科赫雪花
import turtle
def huabi():
    turtle.speed(2)
    turtle.pensize(1)
    turtle.set.up(800,800)
    turtle.penup()
    turtle.goto(-300,100)
    turtle.pendown()
# 定义尖
def koch(size,n):
    if n == 0:
        turtle.fd(size)
    else:
        for angle in range(0,60,-120,60):
            turtle.left(angle)
            koch(size/3,n-1)
# 定义边
def sdkoch(size,n):
    koch(size,n)
    turtle.right(120)
    koch(size,n)
    turtle.right(120)
    koch(size,n)
    turtle.hiderturtle()
    turtle.done()

def main(size,n):
    huabi()
    sdkoch(size,n)
main(500,2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值