小甲鱼Python第二十二讲课后习题
笔记:
def fab(n):
n1 =1
n2 =1
n3 =1
if n < 1:
return -1
if n ==1:
return 1
if n == 2:
return 1
while (n-2)>=0: #这里总写for循环
n3 = n1 +n2 #n1 和 n2的顺序总写反
n1 = n2
n2 = n3
n -=1
return n3
result =fab(20)
if result != -1:
print('总共有小兔子%d 只'%result) 递归的方式:
自己写的
def aaa(n):
if n <0:
return -1
if n ==1 or n ==2:
return 1
else:
return aaa(n-1)+aaa(n-2)
result =aaa(20)
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')
动动手:
0. 使用递归编写一个十进制转换为二进制的函数(要求采用“取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)) 1. 写一个函数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)) 2. 还记得求回文字符串那道题吗?现在让你使用递归的方式来求解,亲还能傲娇的说我可以吗?
解题思路:有好多种方法,不过综合效率来说,小甲鱼的实现方式比较朴素,利用递归每次索引前后两个字符进行对
比,当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)))
小甲鱼Python第二十二讲课后习题的更多相关文章
- 小甲鱼Python第十二讲课后习题---013元组
0. 请用一句话描述什么是列表?再用一句话描述什么是元组? 列表:一个大仓库,你可以随时往里边添加和删除任何东西. 元组:封闭的列表,一旦定义,就不可改变(不能添加.删除或修改). 1. 什么情况下 ...
- 小甲鱼Python第十六讲课后习题--017函数
函数的定义用def,函数名后要用冒号 函数的返回:函数中使用return 测试题: 0. 你有听说过DRY吗? DRY是指Don't Repeat Yourself ,特指在程序设计以及计算中避免 ...
- 小甲鱼Python第十八讲课后习题
笔记: 1.函数与过程:过程(procedure)是简单的,特殊且没有返回值的:函数(Function)有返回值 Python严格来说只有函数没有过程 2.局部变量:在局部生效如在函数中定义的变量 3 ...
- 小甲鱼Python第十九讲课后习题
笔记: 1.内嵌函数:函数内部新创建另一个函数 2.闭包:函数式编程的重要语法,如果在一个内部函数里,对外部作用域(但不是在全局作用域的变量)进行引用,那么内部函数就会被认为是闭包. 3.nonloc ...
- 小甲鱼Python第二十讲课后习题---021
笔记: 1.lambda表达式的作用: 1)Python写一些执行脚本时,使用lambda就可以省下定义函数的过程,比如说我们只是需要写一个简单的脚本来管理服务器时间,我们就不需要专门定义一个函数然后 ...
- 小甲鱼Python第二十一讲课后习题
测试题: 0. 递归在编程上的形式是如何表现的呢? 在编程上,递归表现为函数调用本身这么一个行为. 1. 递归必须满足哪两个基本条件? 一. 函数调用自身二. 设置了正 ...
- 小甲鱼python第二讲课后习题
0.什么是BIF BIF为内置函数,英语全称为Build-in-Function Python3用input()取代了Python2的raw_input(),接收用户输入 1.用课堂上小甲鱼教的方法数 ...
- 小甲鱼python视频第九讲(课后习题)
1.列表里可以存放什么东西? 可以存放任何的数据类型, list1 = ['我爱你','i love you',1314] print(list1) 2.向列表中添加元素 append(将参数作为一个 ...
- 小甲鱼Python第二十三讲课后习题--025,字典
笔记: 1.字典是Python中唯一的映射类型 2.字典包含两个要素:键(key)和值(value)他们是成对出现的,用大括号括起来,多对存在时用逗号隔开. 3.可以用dict()直接创建字典,如di ...
随机推荐
- 使用InternalsVisibleTo给assembly添加“友元assembly”
C#的internal关键字可以使标记的方法,字段或者属性等等只能在当前assembly内部使用,那么如果其他的assembly需要使用这个internal的方法的时候怎么办呢?.NET提供了一种类似 ...
- ES6 数组遍历方法的实战用法总结(forEach,every,some,map,filter,reduce,reduceRight,indexOf,lastIndexOf)
目录 forEach every some map filter reduce && reduceRight indexOf lastIndexOf 前言 ES6原生语法中提供了非常多 ...
- split host
# encoding:utf-8 _portprog = None def split_host_port(host): """ split the host :para ...
- 网络知识 - 简易的自定义Web服务器
简易的自定义Web服务器 基于浏览器向服务端发起请求 两台主机各自的进程之间相互通信,需要协议.IP地址和端口号,IP表示了主机的网络地址,而端口号则表示了主机上的某个进程的地址,IP加Port统称为 ...
- 20165221-week2课上测试补做
week2-课上测试补做 测试一: 参考附图代码,编写一个程序 "week0201学号.c",判断一下你的电脑是大端还是小端. 提交运行结果"学号XXXX的笔记本电脑是X ...
- 让你爱不释手的 Python 模块
 一. logzero 在一个完整的信息系统里面,日志系统是一个非常重要的功能组成部分.它可以记录下系统所产生的所有行为.我们可以使用日志系统所记录的信息为系统进行排错,优化系统的性能,或者根据这些 ...
- vue 报错总结
关闭vue-cli 默认eslint规则: 找到 build -> webpack.base.config.js ,删除箭头指向代码 1.Newline required at end of f ...
- Windows 下安装Git工具及基础使用
Git简介 git是很好一个工具使用,可以执行liunx命令,有git环境后windows系统就可以进行shell命令操作,就可以添加其他liunx辅助软件进行执行,git也代码库管理工具,无论是上传 ...
- 【原创】Linux基础之后台运行
linux服务器通常都是远程登录的,执行命令或者脚本时,如果连接断掉(执行时间较长或者网络不稳定时),那么进程也就没了,这时只能重新连接重新执行,这时可以使用后台执行: 1 nohup 命令 nohu ...
- Jmeter性能测试之Monitor监控(四)
使用Jmeter(该篇文章使用的版本最高为3.1, 3.1+的版本存在兼容性问题)做性能测试, 要监控服务器硬件资源消耗情况, 可以使用扩展插件完成. 1. 服务端插件下载agent, 点击这里 , ...