首页 > 编程语言 >Python递归

Python递归

时间:2024-12-04 20:03:53浏览次数:9  
标签:递归 Python hanoi print 盘子 移动

两个特点:

1、调用自身
2、结束条件
image
为什么func3打印321而func4打印123的原因(看套娃图理解,大框为func,小框为print)(3从外到内,4从内到外)

示例:汉诺塔问题

一共n个盘子,把上面的n-1个盘子看成一个整体

  1. 把n-1个盘子从A经过C移动到B
  2. 把第n个盘子从A移动到C(移动一步的情况)
  3. 把n-1个盘子从B经过A移动到C
#!/user/bin/env python3
# -*- coding: utf-8 -*-
def hanoi(n,a,b,c):
    if n>0:
        hanoi(n-1,a,c,b)
        print(f'{a}->{c}')
        hanoi(n-1,b,a,c)

hanoi(30,'a','b','c')

递推式:h(x)=2h(x-1)+1

标签:递归,Python,hanoi,print,盘子,移动
From: https://www.cnblogs.com/ljnljn/p/18587035

相关文章

  • 2024年华为OD机试真题-数字游戏 -Python-OD统一考试(E卷)
    最新华为OD机试考点合集:华为OD机试2024年真题题库(E卷+D卷+C卷)_华为od机试题库-CSDN博客     每一题都含有详细的解题思路和代码注释,精编c++、JAVA、Python三种语言解法。帮助每一位考生轻松、高效刷题。订阅后永久可看,发现新题及时跟新。题目描述小明玩一个游戏。系......
  • Linux无图形界面环境使用Python+Selenium实践 (转载)
    原文链接:https://developer.aliyun.com/article/1511623简介: 在Linux上使用Selenium和Python来控制浏览器进行自动化测试或者网页数据抓取是常见的需求。本文将介绍如何在Linux无图形界面环境下使用Selenium与Firefox浏览器以headless模式运行,并提供geckodriver、Xvfb和pyvirtu......
  • ESP32+micropython+作为WiFi热点+接收并返回数据
    ESP32+作为WiFi热点+接收并返回数据ESP32代码#ESP32作为AP#作为服务器接收数据并echo#ESP32作为AP即wifi热点importnetworkimportutime#配置ESP32为AP模式ssid='ESP32_AP'password='12345678'authmode=4#WPA2-PSK#创建WLAN对象wlan......
  • Python当中的ParamSpec和TypeVar
    Python当中的ParamSpec和TypeVar内容InPython,thecodesnippet:P=ParamSpec("P")R=TypeVar("R")definestwothingsrelatedtotyping,specificallyforgenericprogramming.Let'sbreakdownwhateachonemeans:1.P=ParamSpec(&qu......
  • python毕设 电影推荐系统程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于电影推荐系统的研究,现有研究主要以通用推荐算法为主,如协同过滤算法、基于内容的推荐算法等在电影推荐领域的应用研究较多。专门针......
  • 运用Python爬虫与代理IP实现电商数据采集 代码示范
    python爬虫结合代理ip获取电商数据可以通过使用Python的requests库结合代理IP来获取。这里以简单模拟获取某个网页内容为例,实际应用中大家需要根据具体电商平台的接口、页面结构等进行针对性调整,并且这里假设大家有可用的代理IP列表,示例中使用了免费的代理IP测试网站httpbin.or......
  • python毕设 校园二手物品交易系统程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景随着互联网的发展,校园二手物品交易逐渐成为一种新兴的经济活动。关于校园二手物品交易系统的研究,现有研究主要以传统的商业二手交易平......
  • 10 行 Python 代码,简洁优雅的搞定 10 种数学运算!
    Python这门语言,我深有感触的是,Python的核心特性能让我们用极少的代码实现非常多的功能,尤其是在数学运算和线性代数领域。这篇文章,我就来聊聊如何用Python的一些特性写出简洁优雅的数学代码,同时也会修正一些常见误区,用更严谨的方式来实现这些功能。先说一句:如今的Python生......
  • python批量将文件编码格式转换为 UTF8带标签的格式,解决linux环境下中文编码乱码的问题
    指定一个文件夹,遍历文件夹内的文件和子文件夹内的文件,然后识别文件后缀为cpp的文件,通过chardet取检测文件的编码格式,如果不是UTF-8-SIG,则转换为UTF-8-SIGpython脚本格式如下importosimportsysimportcodecsimportchardetdefconvert(filename,out_enc="UTF-8-SIG"):......
  • Python入门基础语法之一些内置函数及用法
    一些内置函数及用法在python开发中,我们需要利用python语言完成现实生活中的场景,python提供了许多内置的函数和模块给我们使用,主要讲解一些常用的函数。数学类函数abs()求绝对值sum()求和:字符串类型的元素不行divmod():传入两个数值,前一个除以后一个,得到两个值:一个......