0

正数の平方根を計算するためのバビロニア アルゴリズムを作成しています。反復は、推測が前の推測の 1% 以内になるまで続行する必要があります。私が書いたコードは、エラーが 1% になる前の反復を取得します。もう1回反復するようにするにはどうすればよいですか? 質問をまっすぐにするために、エラーが <1% になるまで繰り返す方法はありますか?

import java.util.Scanner;

public class sqrt {

    public static void main(String[] args){
        Scanner kb = new Scanner(System.in);
        System.out.print("\nplease enter the desired positive number in order to find its root of two: ");

        double num = kb.nextDouble();
        double guess=0; 
        double r, g1, error;    
        if (num>=0){
            guess = num/2;
            do{
                r = num/guess;
                g1 = guess;
                guess = (guess+r)/2;
                error = (guess-g1)/guess;
                if (error<0){
                    error = -error;
                }
            }

            while(error>0.01);
            System.out.println("The square root of the number " + num +" is equal to " +guess);

        } else {
            System.out.println("Sorry the number that you entered is not a positive number, and it does not have a root of two");
        }
    }
}
4

2 に答える 2