python随手小练6

1、汉诺塔

汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。

def hanoi(n, A, B, C):  # 定义汉诺塔函数,参数n是圆盘数,A、B、C是3根柱if n == 1:  # 判断圆盘数,如果等于1,递归条件print(A, '-->', C, ' ', n)  # 直接将A柱上的圆盘移动到C柱上else:  # 否则,进行递归移动hanoi(n - 1, A, C, B)  # 递归将A柱最上方的n-1个盘子落在B柱print(A, '-->', C, ' ', n)  # 输出将A柱上的圆盘移动到C柱上,也就是将A柱的最小面盘子落在C柱hanoi(n - 1, B, A, C)  # 递归将B柱上的n-1个盘子,落在C柱n = int(input("请输入层数:"))
hanoi(n, 'A', 'B', 'C')结果:
请输入层数:3
A --> C   1
A --> B   2
C --> B   1
A --> C   3
B --> A   1
B --> C   2
A --> C   1

2、输入三边的长度,求三角行的面积和周长

import math  # 导入Python的math模块,以便后面可以使用数学函数(sqrt平方根)# 输入三边长度
a = float(input("请输入第一边的长度:"))
b = float(input("请输入第二边的长度:"))
c = float(input("请输入第三边的长度:"))# 验证是否构成三角形
if a + b > c and a + c > b and b + c > a:# 计算周长C = a + b + c# 使用海伦公式计算面积s = (a + b + c) / 2area = math.sqrt(s * (s - a) * (s - b) * (s - c))print(f"这是一个三角形")print(f"三角形的周长为:{C}")print(f"三角形的面积为:{area}")
else:print(f"这不是一个三角形")结果:
请输入第一边的长度:1
请输入第二边的长度:2
请输入第三边的长度:3
这不是一个三角形请输入第一边的长度:3
请输入第二边的长度:4
请输入第三边的长度:5
这是一个三角形
三角形的周长为:12.0
三角形的面积为:6.0

3、鸡兔同笼,从上边看35个头,从下边看94只脚,请问鸡有几只,兔子有几只

def chicken_rabbit(heads,legs):# 循环遍历所有可能的鸡数量for chickens in range(heads + 1):rabbits = heads - chickenstotal_legs = 2 * chickens + 4 * rabbitsif total_legs == legs:return chickens,rabbitsreturn 0,0     #遍历完无满足返回值,返回0,无解heads = 35
legs = 94
# heads = int(input("请输入头的数量:"))
# legs = int(input("请输入腿的数量:"))
chickens,rabbits = chicken_rabbit(heads,legs)if chickens != 0:print(f"鸡有{chickens}只,兔子有{rabbits}只")
else:print("无解")结果:
鸡有23只,兔子有12只

4、编写一个函数,接收一个整数作为参数,判断该整数是否为素数(质数),并返回True或False。

def is_prime(n):for i in range(2, n):if (n % i) == 0:  #如果有除1和它本身以外有其他因数return 0return 1        #必须与循环并列,循环结束无返回就返回1# 素数一般指质数。质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
# 合数是指在大于1的整数中除了能被1和本身整除外,还能被其他数(0除外)整除的数
# 调用
number = int(input("请输入一个整数:"))
if is_prime(number):print(f"{number}是质数")
else:print(f"{number}是合数")结果:
请输入一个整数:35
35是质数
请输入一个整数:5
5是质数
请输入一个整数:6
6是合数

5、一对兔子,每对兔子从出生的第三个月开始,每个月都会生一对小兔子,而每对兔子都会在出生后的第三个月达到性成熟,之后每月都会再生一对小兔子。

问题的关键是:如果我们从一对刚满月或刚出生的兔子开始,经过多少个月后,会有多少对兔子?

说法一:第一个月兔子满月
def rabbit_number(months):# 初始化第一个月、第二个月和第三个月大的兔子对数month_1, month_2, month_3 = 1, 0, 0for i in range(1, months+1):# 计算下一个月的兔子对数temp = month_2month_2 = month_1month_1 = month_3   #以3月大兔子数量来产生1月大兔子数量month_3 = temp + month_3  #注意:原3月大的兔子需加上,用来判断1月大兔子的数量# 或者tem2, tem1, tem3 = tem1, tem3, tem2 + tem3# rabbit = (month_1 + month_2 + month_3)return month_1 + month_2 + month_3# 输入经过多少个月
months = int(input("请输入经过多少个月:"))
rabbit_number(months)
print(f"经过{months}个月后,有{rabbit_number(months)}对兔子")结果:
请输入经过多少个月:8
经过8个月后,有13对兔子

说法一:第一个月兔子满月(即结束时统计刚踏入2月大)如下图解释

#说法二:第一个月兔子刚出生
def rabbit_number(months):# 初始化第一个月、第二个月和第三个月大的兔子对数month_1, month_2, month_3 = 1, 0, 0for i in range(1, months):# 计算下一个月的兔子对数temp = month_2month_2 = month_1month_1 = month_3   #以3月大兔子数量来产生1月大兔子数量month_3 = temp + month_3  #注意:原3月大的兔子需加上,用来判断1月大兔子的数量# 或者tem2, tem1, tem3 = tem1, tem3, tem2 + tem3# rabbit = (month_1 + month_2 + month_3)return month_1 + month_2 + month_3# 输入经过多少个月
months = int(input("请输入经过多少个月:"))
rabbit_number(months)
print(f"经过{months}个月后,有{rabbit_number(months)}对兔子")结果:
请输入经过多少个月:8
经过8个月后,有9对兔子

总结:简单来说就是月份的认知,将for循环的次数+1或-1即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/165955.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LABVIEW 安装教程(超详细)

目录 LabVIEW2017(32/64位)下载地址: 一 .简介 二.安装步骤: LabVIEW2017(32/64位)下载地址: 链接: https://pan.baidu.com/s/1eSGB_3ygLNeWpnmGAoSwcQ 密码:gjrk …

Vue--》简易资金管理系统后台项目实战(后端)

今天开始使用 node vue3 ts搭建一个简易资金管理系统的前后端分离项目,因为前后端分离所以会分两个专栏分别讲解前端与后端的实现,后端项目文章讲解可参考:前端链接,我会在前后端的两类专栏的最后一篇文章中会将项目代码开源到我…

经典算法试题(二)

文章目录 一、岁数1、题目2、思路讲解3、代码实现4、结果 二、打碎的鸡蛋1、题目2、思路讲解3、代码实现4、结果 三、分糖1、题目2、思路讲解3、代码实现4、结果 四、兔子产子1、题目2、思路讲解3、代码实现4、结果 五、矩阵问题1、题目2、思路讲解3、代码实现4、结果 六、谁是…

31二叉树-递归遍历二叉树

目录 LeetCode之路——145. 二叉树的后序遍历 分析 LeetCode之路——94. 二叉树的中序遍历 分析 LeetCode之路——145. 二叉树的后序遍历 给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。 示例 1: 输入:root [1,null,2,3] 输出…

通讯协议学习之路:USB协议协议理论

通讯协议之路主要分为两部分,第一部分从理论上面讲解各类协议的通讯原理以及通讯格式,第二部分从具体运用上讲解各类通讯协议的具体应用方法。 后续文章会同时发表在个人博客(jason1016.club)、CSDN;视频会发布在bilibili(UID:399951374) 1、…

系统架构设计之微内核架构(Microkernel Architecture)

微内核架构(Microkernel Architecture) 一. 什么是微内核架构二. 微内核架构风格-拓扑结构三. 微内核的核心系统设计的三个关键点3.1 插件管理3.2 插件连接3.3 插件通信 四. 微内核架构的优缺点 一. 什么是微内核架构 微内核架构是一种面向功能进行拆分的…

Lua-http库写一个爬虫程序怎么样 ?

以下是一个使用Lua-http库编写的一个爬虫程序,该爬虫使用Lua语言来抓取www.snapchat.com的内容。 代码必须使用以下代码:get_proxy -- 导入所需的库 local http require("http") local json require("json")-- 定义爬虫IP服务器 …

STP生成树协议详解

一、STP作用 如果链路断开或节点故障,那么互联的设备就无法正常通信了,这类网络问题叫做单点故障。没有备份的链路或节点,出现故障会直接断网。如果要提供 724 小时不间断的服务,那就需要在网络中提前部署冗余。避免出现单点故障…

【Arduino TFT】基于 ESP32S3 S7789 240x240 TFT实现的SD2 天气时钟

忘记过去,超越自己 ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2023-10-21 ❤️❤️ 本篇更新记录 2023-10-21 ❤️🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝&#x1f64…

WSL2的安装与配置(创建Anaconda虚拟环境、更新软件包、安装PyTorch、VSCode)

1. WSL2 安装 以管理员身份打开 PowerShell(“开始”菜单 >“PowerShell” >单击右键 >“以管理员身份运行”),然后输入以下命令: dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /a…

uniapp:使用subNVue原生子窗体在map上层添加自定义组件

我们想要在地图上层添加自定义组件,比如一个数据提示框,点一下会展开,再点一下收起,在h5段显示正常,但是到app端真机测试发现组件显示不出来,这是因为map是内置原生组件,层级最高,自…

vscode摸鱼插件开发

不知道大家在写代码的时候,摸不摸鱼,是不是时不时得打开一下微博,看看今天发生了什么大事,又有谁塌房,而你没有及时赶上。 为此,我决定开发一个vscode插件,来查看微博热搜 插件名称&#xff1…

【C++】类和对象(中)

类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中并不是什么都没有,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。 默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默…

面试官:说说 HTTP 常见的请求头有哪些?

一、是什么 HTTP头字段(HTTP header fields),是指在超文本传输协议(HTTP)的请求和响应消息中的消息头部分 它们定义了一个超文本传输协议事务中的操作参数 HTTP头部字段可以自己根据需要定义,因此可能在 Web 服务器…

使用 类加载器 或者 类对象 读取文件

相对路径:项目 的 根目录 开始查找。( 但是在我们真正开发的时候,我们读到的更多的文件并不是直接放在我们项目里面这个文件夹里面,而是放在我们模块里面 )同理可得,我们直接创建 文件 b.txt 会在项目的根目…

打造自己的前端组件库(奶妈版,超详细)

打造自己的前端组件库 demo是开源的,自己上npm 或者 github 上都能搜到 新建vue项目(sass js vue2) vue create yt-ui 修改文件目录(如下) 修改: 1.src 更名 examples; 2. src/components移动到项目最外层;3.vue.config.js更改入口文件 /…

记一次Clickhouse 复制表同步延迟排查

现象 数据从集群中一个节点写入之后,其他两个节点无法及时查询到数据,等了几分钟。因为我们ck集群是读写分离架构,也就是一个节点写数据,其他节点供读取。 排查思路 从业务得知,数据更新时间点为:11:30。…

gRPC之gRPC转换HTTP

1、gRPC转换HTTP 我们通常把RPC用作内部通信,而使用Restful Api进行外部通信。为了避免写两套应用,我们使用grpc- gateway 把gRPC转成HTTP。服务接收到HTTP请求后,grpc-gateway把它转成gRPC进行处理,然后以JSON 形式返回数据。…

Python之爬虫

目录 HTTP请求HTTP响应获得页面响应伪装用户访问打包数据爬取豆瓣top250 HTTP请求 HTTP:HypertextTransferProtcol 超文本传输协议 1、请求行 POST/user/info?new_usertrue HTTP/1.1#资源了路径user/info 查询参数new_usertrue 协议版本HTTP/1.1 2、请求头 Ho…

云安全(1)--初识容器逃逸之特权容器逃逸

文章目录 前言privileged,特权容器逃逸环境配置实际利用实际环境利用计划任务/var/spool/cron/crontabs/ 适用于ubuntu debain/var/spool/cron 适用于centos ld.so.preloadssh 前言 在10.15号的上海中华武数杯的渗透赛里做到了一个k8s的题目,这应该是我第一次在比赛…