• Title


    Python实现递归

    def fact(n):
        if n == 0:
            return 1
        else:
            return n * fact(n-1)
    

    尾递归

    def print_num_recursive(n):
        if n > 0:
            print_num_recursive(n-1)
            print(n)
    
    
    def print_num_recursive_revserve(n):
        if n > 0:
            print(n)
            print_num_recursive_revserve(n-1)    # 尾递归
    

    汉诺塔问题

    有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆: 但是有两个条件, 每次只能移动一个圆盘、大盘不能叠在小盘上面

    def hanoi_move(n, source, dest, intermediate):
        if n >= 1:  # 递归出口,只剩一个盘子
            hanoi_move(n-1, source, intermediate, dest)
            print("Move %s -> %s" % (source, dest))
            hanoi_move(n-1, intermediate, dest, source)
    hanoi_move(3, 'A', 'C', 'B')
    
    # 输出,建议你手动模拟下。三个盘子 A(Source), B(intermediate), C(Destination)
    """
    Move A -> C
    Move A -> B
    Move C -> B
    Move A -> C
    Move B -> A
    Move B -> C
    Move A -> C
    """
    
  • 相关阅读:
    [SUCTF 2019]EasySQL
    [强网杯 2019]随便注
    [HCTF 2018]WarmUp
    Linux下配置JDK环境
    Centos克隆虚拟机后配置网络
    Sublime安装插件
    LeetCode-91-解码方法
    LeetCode-322-零钱兑换
    LeetCode-152-乘积最大子数组
    LeetCode-139-单词拆分
  • 原文地址:https://www.cnblogs.com/guotianbao/p/12731881.html
Copyright © 2020-2023  润新知