本期内容详解:
斐波那契数列的两种实现方式:
迭代的方式:

    def fab(n):  n1 = 1  n2 = 1  n3 = 1  if n < 1:  n = int(input('输入有误,请重新输入:'))  return -1  while n-2 > 0:  n3 = n1 + n2  n1 = n2  n2 = n3  n -= 1  return n3  result = fab(30)  if result != -1:  print('总共有%d对小兔崽子诞生!'%result)  

递归的实现方式:

def fab(n):  if n < 1:  print('输入有误!')  return -1  if n == 1 or n == 2:  return 1  else:  return fab(n-1) + fab(n-2)  result = fab(30)
if result != -1:  print('总共有%d对小兔崽子诞生!'%result) 

用递归的方式解决汉诺塔问题:

    def hannoi(n,x,y,z):  if n == 1:  print(x,'-->',z)  else:  hannoi(n-1,x,z,y)#将前n-1个盘子移动到y上  print(x,'-->',z)#将最底下的盘子移动到z上  hannoi(n-1,y,x,z)#将y上的n-1个盘子移动到z上  n = int(input('请输入汉诺塔的层数:'))  hannoi(n,'X','Y','Z')  

典型课后题
使用递归编写一个十进制转换为二进制的函数(要求采用“取2取余”的方式,结果与调用bin()一样返回字符串形式)。

    def Bin(n):  temp = ''  if n:  temp = Bin(n//2)  temp += str(n%2)  return temp  else:  return temp          num = int(input('请输入一个十进制数:'))  print(num,'-->',Bin(num))  

写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中。举例:get_digits(12345) ==>
[1, 2, 3, 4, 5]

解题思路:利用除以10取余数的方式,每次调用get_digits(n//10),并将余数存放到列表中即可。要注意的是结束条件
设置正确。

    def get_digits(n):  result = ''  if n:  result = get_digits(n//10)  result += str(n%10)  return list(result)  num = int(input('请输入一个数:'))  print(get_digits(num))  

还记得求回文字符串那道题吗?现在让你使用递归的方式来求解,亲还能傲娇的说我可以吗?

解题思路:有好多种方法,不过综合效率来说,小甲鱼的实现方式比较朴素,利用递归每次索引前后两个字符进行对
比,当start > end的时候,也正是首尾下标“碰面”的时候,即作为结束递归的条件。

def Huiwen(temp,start,end):  if start > end:  return 1  else:  if temp[start]==temp[end]:  return Huiwen(temp,start+1,end-1)  else:  0  temp = input('请输入一段文字:')
length = len(temp)
end = len(temp)-1
if Huiwen(temp,0,end):  if temp[0:length//2] == temp[length//2:length]:  print('%s不是一个回文字符串!'%temp)  else:  print('%s是一个回文字符串!'%temp)
else:  print('%s不是一个回文字符串!'%temp)    

使用递归编程求解以下问题:

    def Age(n):  if n == 1:  return 10  if n > 1:  age = 10  age = Age(n-1) + 2  return age  num = int(input('请输入要查询的编号:'))  print('第%d个人的年龄是:%d'%(num,Age(num)))  

FishC笔记—23,24 讲 递归:这帮小兔崽子,汉诺塔相关推荐

  1. 第023、024讲:这帮小兔崽子汉诺塔 | 学习记录(小甲鱼零基础入门学习Python)

    (标答出处: 鱼C论坛) <零基础入门学习Python> 测试题: 0.使用递归编写一个十进制转换为二进制的函数(要求采用'取2取余'的方式,结果与调用bin()函数一样返回字符串形式) ...

  2. [小甲鱼] 零基础入门python第023、024讲课后测试题及答案:这帮小兔崽子汉诺塔

    动动手: 0.使用递归编写一个十进制转换为二进制的函数(要求采用'取2取余'的方式,结果与调用bin()函数一样返回字符串形式) def ten2bin(n):result=''if n:result ...

  3. 小甲鱼Python第二十三讲、第二十四讲(递归-这帮小兔崽子、汉诺塔)

    def fab(n):迭代的方法if n<1:return -1while(n-2)>0:n3=n2+n1n1=n2n2=n3n=n-1return n3 def rabbit(n):递归 ...

  4. 小甲鱼《零基础学习Python》课后笔记(二十三、二十四):递归——这帮小兔崽子和汉诺塔

    由于递归实在不太理解,而且觉得题目大多是为了用递归而使用递归,觉得题目暂时没有做的必要,所以先跳过,以后用到再补充学习- 2018年8月11日

  5. 小甲鱼零基础学python笔记 P24 递归:这帮小兔崽子

    P24 递归:这帮小兔崽子 斐波那契数列:后一个数等于前两数之和 f(n-2)+ f(n-1)=f(n) 例题: 方法一:函数执行 利用函数来执行: 函数执行逻辑: 初始值都为1,利用循环来进行判断若 ...

  6. P24 023递归:这帮小兔崽子

    小甲鱼Python P24 023递归:这帮小兔崽子 P24 023递归:这帮小兔崽子 # def fab(n): # n1 = 1 # n2 = 1 # n3 = 1 # # if n < 1 ...

  7. 【Java数据结构与算法】第十七章 二分查找(非递归)和分治算法(汉诺塔)

    第十七章 二分查找(非递归)和分治算法(汉诺塔) 文章目录 第十七章 二分查找(非递归)和分治算法(汉诺塔) 一.二分查找 1.思路 2.代码实现 二.分治算法(汉诺塔) 1.概述 2.汉诺塔 一.二 ...

  8. 课时23 递归:这帮小兔崽子

    一.斐波那契数列 首先,我们来了解一下斐波那契,斐波那契的发明者是意大利数学家昂纳多·斐波那契 我们拿兔子繁殖的例子来学习斐波那契~ 数据统计表如下图所示: 迭代实现: def fab(n):n1 = ...

  9. 课时23:递归:这帮小兔崽子

    目录: 斐波那契数列 **************** 斐波那契数列 **************** 这节就用递归来实现斐波那契数列.首先,我们要知道斐波那契的发明者,是意大利数学家昂纳多.斐波那契 ...

最新文章

  1. php 数组元素快速去重
  2. DNN架构解析(收集)
  3. 单体、分布式、微服务、Serverless软件架构一览
  4. 为什么用scrum_为什么Scrum糟糕于数据科学
  5. Python 中 异步协程 的 使用方法介绍
  6. 【传统网络】与【SDN】的【DDos攻击与检测】
  7. 4月编程语言排行榜:C++ 重回前三,PHP 呈下降势头
  8. 数字图像处理 采样定理_数字图像处理基础知识总结
  9. 配置csrf_Django 启用和禁用CSRF功能
  10. pythonweb静态服务器_python实现外部静态服务器,浏览器通过HTTP与之通信2
  11. java实用技巧论坛_学习Java前要掌握6大技巧!
  12. 电子设计竞赛应该如何准备?
  13. JAVA 基础(0)教学视频的选择和笔记本的选择
  14. Labview 中AniGIF控件及注册方法
  15. 求职面试过程中都需要注意哪些
  16. 集装箱式数据中心机房
  17. 基于STM32的智能行车辅助系统(自动大灯,倒车报警,自动雨刷,温湿度传感器,TFT 1.3寸LCD屏幕显示,ESP8266WIFI)
  18. Invalid name supplied, making object name syntactically valid. New object name is Seurat..ProjectDim
  19. 非root用户执行程序---sudo的使用
  20. 如何从公网访问局域网WEB服务器

热门文章

  1. AoA-ToF(信号到达角-飞行时间)联合估计详解
  2. 政府采购:国产软件发展的第一推动力
  3. CSS 文本超出两行显示省略号
  4. Antd 表格 ellipsis属性兼容性问题
  5. Google Optimization Tools实现加工车间任务规划【Python版】
  6. D. Treasure Island
  7. number-precision--使用/实例
  8. 徐工汉云解析中小企业如何设备上云?
  9. new DecimalFormat(#0.###)中0与#
  10. windows用ipconfig查看或刷新ip和dns