x的平方根
Posted whatyouknow123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)); } }
以上是关于x的平方根的主要内容,如果未能解决你的问题,请参考以下文章