import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a = in.nextInt();
// 计算平方根并且向下取整
// Math.sqrt(n)返回double类型的平方根,强制转换为int会自动截断小数部分(即向下取整)
int res = (int)Math.sqrt(a);
System.out.println(res);
in.close();
}
} import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); long n = in.nextLong(); long left = 1 , right = n; long result = 0; while (left <= right){ long mid = left + (right - left) / 2; if (mid * mid <= n){result = mid;left = mid + 1;} else {right = mid - 1;} } System.out.println(result); in.close(); } }二分查找法,在【1,n】区间内查找最符合x²<=n的数
大了就往小方向找,小了就往大方向找
找到最大的整数x,其满足 x * x ≤ n