码迷,mamicode.com
首页 > 其他好文 > 详细

Sqrt(x)

时间:2015-10-18 19:50:54      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:

实现取平方根的方法

输入int型,返回int型

使用二分法查找,慢慢逼近结果;注意防止溢出,直接用乘法的结果去比较

 1 package com.rust.cal;
 2 
 3 public class Sqrtx {
 4     /**
 5      * 二分法查找
 6      * @param x-目标值
 7      * @return x的int型平方根
 8      */
 9     public static int mySqrt(int x) {
10         double diff = 0.000001f;
11         double start = 0;
12         double end = x;
13         double mid;
14         while(end - start > diff){
15             mid = (end + start)/2;
16             if (mid * mid == x) {
17                 return (int) mid;
18             }
19             if (mid*mid > x) {
20                 end = mid;
21             } else{
22                 start = mid;
23             }
24         }
25         return (int) end;
26     }
27     public static void main(String args[]){
28         System.out.println(mySqrt(2147483647));
29         System.out.println(mySqrt(1));
30         System.out.println(mySqrt(0));
31     }
32 }

 

Sqrt(x)

标签:

原文地址:http://www.cnblogs.com/rustfisher/p/4889956.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!