用java编写键盘录入一个大于等于2 的整数x.计算并返回x的平方根,结果只保留整数部分,小数部分舍去
时间: 2023-02-07 12:35:55 浏览: 77
可以使用 `Scanner` 类从键盘输入数字,并使用 `Math.sqrt()` 方法计算平方根。然后,使用 `Math.floor()` 方法取整即可。
以下是示例代码:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个大于等于2的整数x:");
int x = sc.nextInt();
// 计算平方根
double sqrt = Math.sqrt(x);
// 取整
int result = (int) Math.floor(sqrt);
System.out.println("x的平方根(取整后)是:" + result);
}
}
```
希望这对你有帮助!
相关问题
计算并返回x的平方根整数部分,其中x是非负整数。由于返回类型是整数,结果只保留整数部分,小数部分将被舍去
可以使用二分查找来求解。假设答案为ans,那么有0 <= ans <= x。对于ans的值,可以使用二分查找,不断缩小ans的范围,直到找到ans的最大值。
具体实现如下:
```python
class Solution:
def mySqrt(self, x: int) -> int:
left, right = 0, x
while left <= right:
mid = (left + right) // 2
if mid * mid <= x < (mid + 1) * (mid + 1):
return mid
elif x < mid * mid:
right = mid - 1
else:
left = mid + 1
return -1
```
时间复杂度为O(logx)。
计算并返回x的平方根整数部分,其中x是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
可以使用二分查找来求解。假设要求的数为x,则其平方根的整数部分不会超过x/2+1。因此,可以在0和x/2+1之间进行二分查找,找到最大的整数mid,使得mid的平方不大于x。那么mid就是x的平方根的整数部分。
以下是Python实现:
```python
class Solution:
def mySqrt(self, x: int) -> int:
if x == 0:
return 0
left, right = 0, x // 2 + 1
while left < right:
mid = (left + right + 1) // 2
if mid * mid > x:
right = mid - 1
else:
left = mid
return left
```
时间复杂度为O(logx),空间复杂度为O(1)。