二分法求平方根
个人解题思路,仅供参考:
import java.util.Date; public class Test { /** * 实现函数 int sqrt(int x). * 计算并返回x的平方根(向下取整) */ public static void main(String[] args) { int n = 999999999; System.out.println(new Date()); System.out.println(sqrt(n)); System.out.println(new Date()); } /** * 二分法 * @param x int整型 * @return int整型 */ public static int sqrt (int x) { if(x == 1) return 1; long min = 1,max = x, arg = x/2; for (;arg>min&&arg<max;arg=(min+max)/2) { if (arg*arg==x) return (int)arg; else if (arg*arg<x) min = arg; else max = arg; } return (int)arg; } }
运行结果: