牛顿平方根法

时间:2016-01-08 14:51:45

标签: java

我们有一个类调用newton,我们使用newton的平方根方法。这是我想出的代码。我们必须使用递归,找到答案。这是我们用来找到答案的公式,  Xn =(Xn-1 - (Xn-1)^ 2 -k)/ 2(Xn1)。 Xn =新猜测或变量t。 Xn-1 =用户猜测或g。 K =正方形的数字。这个方法将继续进行,直到新猜测t等于答案。所以我的问题是看起来是对的吗?

class Newton {

public static void main(String[] args) {
    double k = 25; // number that is being squarted
    double g = 10; // number we are quessing
    double x = 0; // x holds the answers 
    x = Math.sqrt(k);
    System.out.print(x);
    int answer= find(t);
   System.out.println("The square root is " + answer);
}
public static int find(double k, double g, double x, double t){
    if (g == x){

    } return g;
    else{
        t = (x - 1) - (Math.pow(x - 1, 2) - k) / (2 * (x - 1));
        g = t;
    } return (int) t;
}

}

1 个答案:

答案 0 :(得分:1)

尝试纠正这样的return语句:

  public static int find(double k, double g, double x, double t){
    if (g == x){
        return (int) g;
    }
    else{
        t = (x - 1) - (Math.pow(x - 1, 2) - k) / (2 * (x - 1));
        g = t;
     return (int) t;
    } 
}

int返回的不是double,而且出错了。