我们有一个类调用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;
}
}
答案 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
,而且出错了。