2
これは私の頭の上にある宿題のためのものです。私の先生はクラスをとても素早く動かしています。これは私が今までにJavaで書いた4番目のプログラムです。私はいくつかの助言を求めています。私は自分のプログラムで定義されているEPSILONのエラーに数値のおおよそのsqrtを見つける必要があります。しかし、これはスクイズ定理を使用して達成され、常に私の境界を更新する必要があります。 Javaでは変数全体の使用時に変数の値をどのように更新するのですか?私の教授はまだ値を返さないということを覚えておいてください。私は彼が私たちにそれらを使うつもりはないと思います。私はかなり初心者ですが、私は心が開いています。あなたは中間点の変数を更新するたびにmidPointSqr変数を更新する必要がスクイーズ定理を使ったjavaの平方根の近似
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
final double EPSILON = .0000000001;
System.out.print("Enter a number to find its square root -> ");
double number = sc.nextDouble();
double low = 0;
double high = 0;
double midPoint = (low+high)/2;
high = number;
double midPointSqr = midPoint*midPoint;
if (number < 0) {
System.out.println("NaN");
} else {
while ((Math.abs(midPointSqr - number)) > EPSILON) {
{
if (number <= 1) {
low = 0;
if (midPointSqr > number)
{
midPoint = (high+low)/2;
high = high/2;
System.out.printf("%.6f, %.6f\n", low, high);
}
else
{
midPoint = (high+low)/2;
low = high/2;
System.out.printf("%.6f, %.6f\n", low, high);
}
} else {
low = 1;
if (midPointSqr > number)
{
midPoint = (high+low)/2;
high = high/2;
System.out.printf("%.6f, %.6f\n", low, high);
}
else
{
midPoint = (high+low)/2;
low = high/2;
System.out.printf("%.6f, %.6f\n", low, high);
}
}
}
}
}
}
}