How to get the square root rounded down to the nearest integer of a positive integer in Java

1 Answer

0 votes
public class Program {
    public static int mySqrt(int n) {
        if (n == 0 || n == 1) {
            return n;
        }

        int start = 1;
        int end = n;

        while (start <= end) {
            int mid = start + (end - start) / 2;

            if ((long)mid * mid > (long)n) {
                end = mid - 1;
            }
            else if (mid * mid == n) {
                return mid;
            } else {
                start = mid + 1;
            }
        }

        return end;
    }
    
    public static void main(String args[]) {
        System.out.println(mySqrt(240000)); // 489.897
    }
}
 
 
 
/*
run:
 
489
 
*/

 



answered May 12, 2024 by avibootz
edited May 12, 2024 by avibootz

Related questions

...