java - 运行自定义平方根函数时出错 (Java)

标签 java methods runtime-error square-root

所以我创建了一个方法来计算任何给定整数的平方根。对于诸如 27 之类的 x,我希望它显示 3√3。或者对于 28、2√7 等等。而且我会提前告诉你,我知道这个方法还有其他问题 -- 我打算解决它们。

public static void root(int x) {
    int [] a = new int [x]; //list of outside integers for each i
    int b = x; //inside
    int c = 1; //product of a[]
    double sqrt = Math.sqrt(x);

    if (sqrt != (int) sqrt) {
        for (int i=2; i < x; i++) {
        a[i] = 1;
        while (x%(i^2) ==0) { //ERROR HERE
            a[i] = a[i] * i;
            b = b/(a[i])^2;
        }
        c = c * a[i];
        }
        System.out.println(b+"\u221A" + c);
    }
    else {
        System.out.println((int) sqrt);
    }
}

在对任何未产生干净根的整数执行后,我收到一条错误消息“/zero”。在上面我标记了据说发生错误的行。提前致谢!

最佳答案

问题是这个表达式

x%(i^2)

运算符 ^ 不是幂运算,它是按位异或。在第一次迭代中,i22 ^ 2 的结果为零。您正试图除以零(以获得余数),但失败了。使用

x%(i*i)

相反。

关于java - 运行自定义平方根函数时出错 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38821851/

相关文章:

java - 在多级继承的情况下如何在java中覆盖具有通用返回类型的方法

java - 如何使用 Spring Batch 发送多封电子邮件

javascript - 在对象数组上使用 JavaScript/jQuery 方法?

java - 内部类中的静态方法错误

java - 静态方法可能包含在类中的 3 种可能情况是什么?

python - '权限错误: [Errno 13] Permission denied' after running a python script using a batch file

java - 为什么我的队列对输入字符串的排序与先进先出的基础不同?

Java BufferedReader 无法加载网页的完整内容

python - erlang 使用 erlport 生成 python 实例时出现 erlang 错误

c++ - 迭代器不兼容错误