zoukankan      html  css  js  c++  java
  • x的平方根

    题目:

    思路:

    第一种方法:利用二分查找的思想。判断一个数的中间值的平方是不是等于这个数是的话直接返回,否则的话根据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<times; i++){ x = rand.nextInt(10000); int result = fs.my_sqrt(x); int real = (int)Math.floor(Math.sqrt(x)); if(result == real){ right++; } } System.out.print((double)right/times); // System.out.println(fs.my_sqrt(8)); } }
  • 相关阅读:
    解决跨域之服务器代理http-proxy-middleware模块
    npm、yarn、nrm包管理工具
    nodeJS基础
    gulp自动化构建工具应用
    六种继承方式
    七种去重的方法
    初识模块化
    针对PHP网站攻击的几种方式
    oracle备份恢复(dmp文件)
    nginx.conf中文详解
  • 原文地址:https://www.cnblogs.com/whatyouknow123/p/9245864.html
Copyright © 2011-2022 走看看