求平方
public static double sqrt(double c) { if (c < 0) return Double.NaN; double err = 1e-15; //设置误差不超过1*10^-15 double t = c; //设置初始等于c while (Math.abs(t-c/t) > err*t) //1-c/t^2的绝对值小于err时停止 t = (c/t+t)/2; return t; }求立方
public double getCube(double input){ double x = 1; double x1 = x - (x*x*x - input) / (3*x*x); while(x - x1 >0.000000001 || x - x1 < -0.000000001){ //判断精度 x = x1; x1 = x - (x*x*x - input) / (3*x*x); } return x1; }判断是否为完全平方数
//判断一个数,是否为完全平方数 public boolean isPerfectSquare(int num){ long x = num; while (x * x > num) { System.out.println(x*x); x = (x + num / x) / 2; } int sqnum = (int) x; return (sqnum * sqnum == num); }