Python算法例4 求平方根
1. 问题描述
实现int sqrt(int x)函数,计算并返回x的平方根。
2. 问题示例
sqrt(3)=1;sqrt(4)=2;sqrt(5)=2;sqrt(17)=4。
3.代码实现
要实现计算整数x的平方根函数sqrt(x),可以使用二分查找法。
首先,我们定义一个变量left = 0用来表示搜索区间的左边界,以及一个变量right = x用来表示搜索区间的右边界。初始时,我们将搜索区间设置为[0, x]。
然后,我们可以进入一个循环,直到搜索区间收敛到一个整数值。在每次循环中,我们首先计算搜索区间的中间值mid = (left + right) // 2,然后将mid的平方与x进行比较。
- 如果mid的平方等于x,那么mid就是x的平方根,直接返回mid。
- 如果mid的平方小于x,那么x的平方根应该在[mid+1, right]范围内,将left更新为mid+1。
- 如果mid的平方大于x,那么x的平方根应该在[left, mid-1]范围内,将right更新为mid-1。
当搜索区间收敛到一个整数值时,返回该整数值作为x的平方根。
def sqrt(x):if x == 0 or x == 1:return xleft, right = 0, xwhile left <= right:mid = (left + right) // 2if mid * mid == x:return midelif mid * mid < x:left = mid + 1else:right = mid - 1return rightprint(sqrt(3)) # 输出: 1
print(sqrt(4)) # 输出: 2
print(sqrt(5)) # 输出: 2
print(sqrt(17)) # 输出: 4
class Solution:def sqrt(self,x):left = 0right = xwhile left <= right:mid = (left + right) // 2if mid * mid == x:return midelif mid * mid < x:left = mid + 1else:right = mid - 1return rightif __name__ == '__main__':temp = Solution()x1 = 5x2 = 17print(("输入:"+str(x1)))print(("输出:"+str(temp.sqrt(x1))))print(("输入:" + str(x2)))print(("输出:" + str(temp.sqrt(x2))))
相关文章:

Python算法例4 求平方根
1. 问题描述 实现int sqrt(int x)函数,计算并返回x的平方根。 2. 问题示例 sqrt(3)1;sqrt(4)2;sqrt(5)2;sqrt(17&#…...

LVGL_多界面切换
LVGL_多界面切换 1、创建多个界面(create_page1();) 2、加载一个界面显示(lv_scr_load(page1);) 3、切换不同界面显示(lv_scr_load_anim(page2, LV_SCR_LOAD_ANIM_OVER_LEFT, 300, 0, false);) static lv_…...

C/C++输出字符菱形 2021年3月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
目录 C/C输出字符菱形 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C输出字符菱形 2021年3月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 给定一个字符,用它构造一个对角线长…...

DI93a HESG440355R3 通过其Achilles级认证提供网络安全
DI93a HESG440355R3 通过其Achilles级认证提供网络安全 施耐德电气宣布推出Modicon M580以太网PAC (ePAC)自动化控制器,该控制器采用开放式以太网标准,通过其Achilles级认证提供网络安全。M580 ePAC使工厂操作员能够设计、实施和运行一个积极利用开放网…...
Go中Panic and Recover
什么是Panic? 在 Go 程序中处理异常情况的惯用方法是使用errors.。errors足以应对程序中出现的大多数异常情况。 **但有些情况下,程序在出现异常情况后无法继续执行。在这种情况下,我们使用panic提前终止程序。当函数遇到恐慌时,…...
webpack 与 grunt、gulp 的不同?
结论先行: Webpack、Grunt 和 Gulp 都是前端开发中常用的构建工具,但是 Webpack 是基于模块化打包的工具,并支持模块化开发。而 Grunt 和 Gulp 都是基于任务的构建工具,自动执行指定的任务,但不支持模块化开发。 1、相…...

园区网真实详细配置大全案例
实现要求: 1、只允许行政部电脑对全网telnet管理 2、所有dhcp都在核心 3、wifi用户只能上外网,不能访问局域网其它电脑 4、所有接入交换机上bpdu保护 5、只允许vlan 10-40上网 5、所有接入交换机开dhcp snoop 6、所有的交换机指定核心交换机为ntp时间服务…...
小程序video标签在底部出现1px无法去除的黑色线
问题描述 参见社区问题详情 此问题只会在ios手机真机中出现,视频底部出现1px无法去除的黑色线 解决方法 1.尝试过video各种配置,以为是设置参数导致 2.尝试过父元素设置height:200px;overflow:hidden;vi…...

渗透工具使用及思路总结(持续更新)
扫描类 nmap 快速扫描开放端口 nmap --min-rate 10000 -p- 10.129.252.63扫描详细全服务 nmap -sV -A -p 22,80 10.129.252.63 nmap -sV -A -p- 10.129.252.63-l:显示正在监听的 TCP 和 UDP 端口; -a:显示所有活动的 TCP 连接; -A <网络类型>或 - <网络类型&g…...

速卖通新卖家有必要测评吗?
大家都知道通过测评可以提升产品的转化率,提升产品的销量,那么做速卖通的卖家有必要测评吗? 测评就是类似于国内电商的补单,而一个类目里面竞争很大很卷的话,不去补销量来提升产品的权重,凭借着平台给的自…...

从lc114. 二叉树展开为链表到lc-LCR 155二叉搜索树转化为排序的双向链表
1 lc114. 二叉树展开为链表 1.1 描述 进阶:你可以使用原地算法(O(1) 额外空间)展开这棵树吗? 1.2 解法一: 先序遍历这棵树并且将节点加入到一个list中,随后按顺序将list中的每一个元素的left指针置换为…...

做读书笔记时的一个高效小技巧
你好,我是 EarlGrey,一名双语学习者,会一点编程,目前已翻译出版《Python 无师自通》、《Python 并行编程手册》等书籍。 在这里,我会持续和大家分享好书、好工具和高效生活、工作技巧,欢迎大家一起提升认知…...

Redis7.x 高级篇
Redis7.x 高级篇 Redis版本发行时间Redis单线程说的是什么东西 Redis版本发行时间 Redis单线程说的是什么东西...

2023辽宁省数学建模B题数据驱动的水下导航适配区分类预测完整原创论文分享(python求解)
大家好呀,从发布赛题一直到现在,总算完成了辽宁省数学建模B题完整的成品论文。 本论文可以保证原创,保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 B用Python+SPSSPRO求解&…...

向量数据库的崛起与多元化场景创新
向量数据库的崛起与多元化场景创新 前言: 在当今数字化时代,数据被认为是黄金,对于企业、科学家和决策者而言都具有巨大的价值。然而,随着数据规模的不断增长,有效地管理、存储和检索数据变得愈发复杂。这就引入了向量…...

面试10000次依然会问的【ReentrantLock】,你还不会?
引言 在并发编程的世界中,ReentrantLock扮演着至关重要的角色。它是一个实现了重入特性的互斥锁,提供了比synchronized关键字更加灵活的锁定机制。ReentrantLock属于java.util.concurrent.locks包,是Java并发API的一部分。 与传统的synchro…...

Bat批量处理
一:创建文件夹 excel创建文件 复制出来新建文本文件 另存为bat 双击bat 二:批量移动文件 A列:获取的文件名列表 dir /b/o:n> original.txt B列:填充序号 C列公式:每隔9行增加1 INT((ROW(B1)-1)/9)1 D列公式&am…...

【一、http】go的http基本请求方法
1、http的基本请求 package mainimport ("bytes""fmt""io""net/http""net/url" )func post(){r, err : http.Post("http://httpbin.org/post", "", nil)if err ! nil {fmt.Println("ss")}de…...

【软考中级】软件设计师-下午题
下午题 试题一 黑洞:加工有输入无输出 白洞(奇迹):加工有输出无输入 灰洞:数据流输入的加工不足以产生输出 结构化语言: IF *** THEN ELSE IF *** THEN ******* END IF END IF 数据流的父子图平衡,如果父子图平衡就不…...
(03)Mycat实现读写分离
1、schema.xml <?xml version"1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat"http://io.mycat/"><schema name"TESTDB" checkSQLschema"false" sqlMaxLimit"…...

TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...
xmind转换为markdown
文章目录 解锁思维导图新姿势:将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件(ZIP处理)2.解析JSON数据结构3:递归转换树形结构4:Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...

图解JavaScript原型:原型链及其分析 | JavaScript图解
忽略该图的细节(如内存地址值没有用二进制) 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么:保存在堆中一块区域,同时在栈中有一块区域保存其在堆中的地址(也就是我们通常说的该变量指向谁&…...

倒装芯片凸点成型工艺
UBM(Under Bump Metallization)与Bump(焊球)形成工艺流程。我们可以将整张流程图分为三大阶段来理解: 🔧 一、UBM(Under Bump Metallization)工艺流程(黄色区域ÿ…...