当前位置: 首页 > 知识库问答 >
问题:

如何解决此程序

栾瑞
2023-03-14

实现一个以整数为参数的静态方法,使用Math类计算给定整数的整数平方根。如果整数为负数,则取其正数的平方根,然后返回结果的负数,表示它是一个虚数

我一直在尝试,一直到这里

Scanner in = new Scanner(System.in);
int j = 1, result = 1;

System.out.println("Enter a number : ");
int x = in.nextInt();

if (x == 0 || x == 1 ) 
{
  System.out.println("Square root = " + x);
  return;
}

while (result <= x) 
{
  j++;
  result = j * j;
}

System.out.println("Square root = " + (j - 1));

共有2个答案

钱志义
2023-03-14

默认情况下

数学sqrt()

已处理所有正数的平方根。但当你尝试使用负数时,你会得到“NaN”。因此,您需要自己实现负数

  public static double getRoot(int num) {
    boolean isNegative = false;
    // if negative turn to positive int
    if (num < 0) {
        num = Math.abs(num);
        isNegative = true;
    }

    double result = Math.sqrt(num);
    if(isNegative) {
        // Negate number
        result = 0 - result;
    }

    return result;
戴瑞
2023-03-14

这就是你要找的吗?我们找到数字的平方根,并确保输入数字为正。数学abs将找到绝对值。然后,如果输入为负,我们将结果返回为负,否则返回平方根。

    static int result(int input) {
        int result = (int) Math.sqrt(Math.abs(input));

        return input < 0 ? -result : result;
    }
 类似资料:
  • 问题内容: 我在下一行出现错误。我正在做添加到jsonarray的过程。请帮我。 问题答案: 这是我在重新编程时经常遇到的错误。此异常的原因或细节非常清楚。不允许在迭代时修改集合(正在添加新元素)。至少不支持语法。 为了解决您的问题,我认为有两种方法很简单。 1)。而不是使用语句来循环,更好的方法是使用迭代器来避免ConcurrentModificationException。 2)。在循环播放时

  • 问题内容: DeprecationWarning:需要一个整数(got类型为float)。不建议使用隐式转换为整数,并且在将来的Python版本中可能会删除隐式转换。 DeprecationWarning:需要一个整数(got类型为float)。不建议使用隐式转换为整数,并且在将来的Python版本中可能会删除隐式转换。 问题答案: 警告与的坐标参数有关。浮点坐标将表示的原点位于窗口像素之间。那没

  • 我已经从Spring Boot 1.5升级到Spring Boot 2.1.8。我做了一些测试,但现在失败了。我还在2.9版本中使用maven surefire插件,它也能正常工作,但如果有必要的话,我也将其升级到了2.22.0。 还有另一个类似于上述的类,但将Site1替换为Site2。 有一个ElementController 我得到这个例外: 我没有编写测试,这是我继承的代码,在一个代码库中

  • 我正在用for循环和while循环编写一个简单的程序,出现了一个。 这是我的密码: 下面是发生的错误:

  • 错误-mssql08(系统找不到指定的文件)java.io.FileNotFoundException:mssql08(系统找不到指定的文件)在java.io.FileInputStream.Open0(本机方法)

  • 我写一个bat文件来复制。压缩到另一个位置。文件从本地主机复制到另一台pc。(圆盘定义为R) 我写了这个命令: 问题出在任务调度程序中。我设置文件夹位置,选择bat文件,**我设置运行,无论用户是否登录**,并选择高权限,则会出现0X1错误。但如果我取消选择用户是否登录,请勾选它。但我需要勾选它 我该如何解决这个问题? 提前谢谢