Sqart Int 入参为Int
Page 1 of 1
Sqart Int 入参为Int
static final double epsilon=0.000001;
public static int sqrt(int x,double epsilon) {
if (x < 2) return x;
double left = 0, right = x;
double mid = 0, mid_sqaure = 0;
while (true) {
mid = left + (right - left) / 2.0;
mid_sqaure = mid * mid;
if (mid_sqaure <= x+epsilon && mid_sqaure >= x-epsilon) {
break;
} else if (mid_sqaure > x+epsilon) {
right = mid;
} else {
left = mid;
}
}
return (int)mid;
}
public static int sqrt(int x,double epsilon) {
if (x < 2) return x;
double left = 0, right = x;
double mid = 0, mid_sqaure = 0;
while (true) {
mid = left + (right - left) / 2.0;
mid_sqaure = mid * mid;
if (mid_sqaure <= x+epsilon && mid_sqaure >= x-epsilon) {
break;
} else if (mid_sqaure > x+epsilon) {
right = mid;
} else {
left = mid;
}
}
return (int)mid;
}
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum
|
|