博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
x的平方根
阅读量:5090 次
发布时间:2019-06-13

本文共 953 字,大约阅读时间需要 3 分钟。

题目:

 

思路:

第一种方法:利用二分查找的思想。判断一个数的中间值的平方是不是等于这个数是的话直接返回,否则的话根据middle^2和x的大小确定Low和high的值。这里有注意的一个点就是while的判断条件,如果high-low>1的话才可以继续循环。否则的话会陷入死循环。

以下是第一种方法的java代码:

import java.util.Random;public class findsqrt {    public int my_sqrt(int x){        int result = 0;        int low = 0;        int high = x;        while((high-low)>1){            int middle = low + (high - low)/2;            int middle_power = middle*middle;            if(middle_power == x){                return middle;            }else if(middle_power < x){                low = middle;            }else{                high = middle;            }        }        result = low;        return result;    } //这是一个简单的测试代码,结果表明该代码是正确的    public static void main(String[] args){        Random rand = new Random();        findsqrt fs = new findsqrt();        int times = 1000;        int x = 0;        int right = 0;        for(int i=0; i

 

转载于:https://www.cnblogs.com/whatyouknow123/p/9245864.html

你可能感兴趣的文章
ElasticSearch 获取es信息以及索引操作
查看>>
Apollo快速安装视频教程
查看>>
mysql 用户管理和权限设置(转)
查看>>
PHP进程通信基础——信号
查看>>
32复用
查看>>
COGS 1578. 次小生成树初级练习题
查看>>
工作三年的思考
查看>>
jquery $.fn $.fx是什么意思有什么用
查看>>
javaWeb中的文件上传下载
查看>>
开始学习MFC
查看>>
第三周作业(三)
查看>>
手把手教你如何使用webpack+react
查看>>
Java设计模式-----单例模式
查看>>
组合和继承
查看>>
Mondrian系列
查看>>
推荐移动应用:群落(Groupcells)——全球第一款基于图片组的近场社交电子商务平台...
查看>>
WEB安全 php+mysql5注入防御(一)
查看>>
python之路_并发编程之多进程3
查看>>
everything 快速搜索有代价
查看>>
Spark RDD概念学习系列之如何创建RDD
查看>>