【算法】求平方根 - 二分法/牛顿迭代

题目

求一个数的平方根,要求返回小于等于平方根的正整数。

原理

二分法

遍历每次取中间数,大了就往小取,小了就往大取,直到取到正确的值。

牛顿迭代

求num的平方根,则是求 num / x 和 x 的均值,这个值会越来越趋近于真正的平方根。
比如求12的平方根,2 * 6 = 12,那么 (2 + 6) / 2的值就会更趋近于平方根。

代码

二分法
    public static void main(String[] args) {System.out.println(sqrtByBinary(24));}private static int sqrtByBinary(int num) {int index = -1, l = 0, r = num;while (l <= r) {int mid = l + (r - l) / 2;if (mid * mid <= num) {index = mid;l = mid + 1;} else {r = mid - 1;}}return index;}
牛顿迭代
    public static void main(String[] args) {System.out.println(newtonSqrt(24, 24));}public static int newtonSqrt(double i, int num) {double res = (i + num/i) / 2;if (res == i) {return (int) res;}return newtonSqrt(res, num);}

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

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

相关文章

linux 文件提权|属性修改

文章目录 suid&#xff08;set uid&#xff09;添加文件属性查看文件属性i &#xff08;immutable&#xff09; umask suid&#xff08;set uid&#xff09; 让文件在执行的时候具有属主&#xff08;对应文件 user &#xff09;的权限 chmod 7744 temp.txt 第一位的7表示权限位…

数据库的基本使用

一、数据库的简介 RDBMS简介&#xff1a; Relational Database Management System,通过表来表示关系类型。当前主要使用两种类型的数据库:关系型数据库和非关系型数据库。所谓的关系型数据库RDBMS是建立在关系模型基础上的数据库&#xff0c;借助于集合代数等数学概念和方法来…

全量知识系统 程序详细设计之架构设计:一个信息系统架构

统架构&#xff0c;整体设计分成了三部分--三种方面&#xff1a;信息nformation、系统Syste 原文 以下是对全知系统程序详细设计需要的架构规划的考虑。 全知系统架构是一个信息系统架构&#xff0c;整体设计分成了三部分&#xff08;三种“方面”&#xff09;&#xff1a;信…

蓝桥杯第十三届省赛C++B组(未完)

目录 刷题统计 修剪灌木 X进制减法 【前缀和双指针】统计子矩阵 【DP】积木画 【图DFS】扫雷 李白打酒加强版 DFS (通过64%&#xff0c;ACwing 3/11&#xff09;; DFS(AC) DP&#xff08;AC&#xff09; 砍竹子(X) 刷题统计 题目描述 小明决定从下周一开始努力刷题准…

洛谷 P3512 [POI2010] PIL-Pilots

首先就是对于超时的做法进行展示&#xff0c;这个思路是最原始的思路&#xff0c;也就是用单调队列的板子&#xff0c;用了两次&#xff0c;然后求差值&#xff0c;差值满足条件我们就直接返回这个长度&#xff0c;然后和后面的循环的长度进行相比。 #include<iostream>…

《QT实用小工具·十八》高亮发光按钮控件

1、概述 源码放在文章末尾 该项目实现了高亮发光按钮控件 可设置文本&#xff0c;居中显示。可设置文本颜色。可设置外边框渐变颜色。可设置里边框渐变颜色。可设置背景色。可直接调用内置的设置 绿色、红色、黄色、黑色、蓝色 等公有槽函数。可设置是否在容器中可移动&#…

git应用场景(进阶)

Git场景运用-CSDN博客 专有名词 Workspace&#xff1a;工作区 Index / Stage&#xff1a;暂存区 Repository&#xff1a;仓库区&#xff08;或本地仓库&#xff09; Remote&#xff1a;远程仓库HEAD HEAD&#xff0c;指向当前分支最新提交点。所处分支变化&#xff0c;或产生新…

Open CASCADE学习|旋转变换

物体在三维空间中的旋转变换操作通常可以通过三种不同的方式来表示&#xff1a;矩阵&#xff08;Matrix&#xff09;、欧拉角&#xff08;Euler Angles&#xff09;和四元数&#xff08;Quaternion&#xff09;。下面详细解释这三种表示方法。 矩阵&#xff08;Matrix&#xf…

centos后台运行使用nohup命令

nohup ./my_script.sh & nohup命令运行后如何关闭 nohup 命令用于在用户注销系统后继续运行指定的命令。如果您想关闭使用 nohup 运行的进程&#xff0c;您可以使用 kill 命令。 首先&#xff0c;您需要找到 nohup 运行的进程的进程ID&#xff08;PID&#xff09;。可以使…

【云开发笔记No.21】如何建设中台

这里主要讨论一下中台的建设步骤和组织方法。 随着企业业务的快速发展和数字化转型的深入&#xff0c;中台建设成为众多企业追求高效运营和创新发展的关键一环。中台&#xff0c;作为一个集成了业务、数据和技术的共享服务平台&#xff0c;旨在实现资源的统一管理和高效复用。…

C++的并发世界(八)——lock_guard和unique_lock

1.lock_guard lock_guard是C的stl库中的一种互斥量封装嘞&#xff0c;用于保护共享数据&#xff0c;防止多个线程同时访问同一资源而导致的数据竞争问题。&#xff0c;其包括以下成员函数&#xff1a; 函数名作用lock尝试对互斥量进行加锁&#xff0c;如果当前互斥量已经被其他…

写JDBC遇到的问题

执行会出现以下错误信息 java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ? and loginPwd ? at line 1 at com.mysql.cj.jdbc.exceptions…

Unix Domain Sockets (UDS) 简介

Unix Domain Sockets (UDS) 是一种进程间通信&#xff08;IPC, Inter-Process Communication&#xff09;机制&#xff0c;特别适用于在同一台主机操作系统上运行的多个进程之间进行高效的数据交换。它是基于文件系统路径或者匿名内存区域创建的套接字&#xff08;socket&#…

图书管理系统

❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; hellohello~&#xff0c;大家好&#x1f495;&#x1f495;&#xff0c;这里是E绵绵呀✋✋ &#xff0c;如果觉得这篇文章还不错的话还请点赞❤️❤️收藏&#x1f49e; &#x1f49e; 关注&#x1f4a5;&a…

sqlalchemy中Datetime的创建时间-修改时间之default|server_default|onupdate

default vs. server_default 的区别 default 这个属性 &#xff0c;就是默认生成orm 对象,如果某个字段没有 传值&#xff0c;就使用default 值&#xff0c;然后写入到数据库中。 server_default 这个属性&#xff0c;要求是一个str, unicode 类型。 用来生成表结构的时候&am…

Vue - 你会在同一个元素上使用v-for和v-if吗

难度级别:初级及以上 提问概率:50% 在初学者看来,v-for和v-if同时使用是非常方便的,二者共同使用的常见场景有两种。例如有两个列表,分别用于渲染学生数据和老师数据,然后有两个单选按钮,用于切换当前页面中需要展示学生列表还是老师列…

鸿蒙HarmonyOS 与 Android 的NDK有什么不一样?

1. 序言 就像开发Android要用Android Studio一样&#xff0c;Android Studio&#xff08;简称AS&#xff09;其实是基于IDEAgradle插件android插件开发而来。 鸿蒙系统&#xff0c;你可以认为它和android有点像&#xff0c;但又是超越android的存在&#xff0c;除了手机&…

【洛谷题解】 P10337 [UESTCPC 2024] 操作序列

分析 首先&#xff0c;我们知道&#xff0c;当这 n n n 个数全部相等时&#xff0c; k k k 的最大值就是 n n n。 那如果不相等呢&#xff0c; k k k 就不可能为 n n n 得值了&#xff0c;因为每次他都要选择 k k k 个不同位置上的数乘上一个相同的数&#xff0c;把几个不…

nginx目录sites-enabled和sites-available介绍

模块简介&#xff1a; 在Nginx中&#xff0c;/etc/nginx/sites-enabled 目录和 /etc/nginx/sites-available 目录通常用于组织虚拟主机配置文件&#xff0c;这些文件描述了不同站点的设置&#xff0c;例如域名、目录结构等。 /etc/nginx/sites-available 目录&#xff1a;存放…

go-zero整合单机版Redis并实现增删改查

go-zero整合单机版Redis并实现增删改查 本教程基于go-zero微服务入门教程&#xff0c;项目工程结构同上一个教程。 go-zero微服务入门教程&#xff08;点击进入&#xff09; 本教程主要实现go-zero框架整合单机版Redis&#xff0c;并暴露接口实现对Redis数据的增删改查。 本…