logo

Java програма за намиране на квадратен корен от число без sqrt метод

В Java, до намиране на корен квадратен от число е много лесно, ако използваме предварително дефинирания метод. Java математика клас предоставя sqrt() метод за намиране на корен квадратен от число. В този раздел ще създадем a Java програма за намиране на корен квадратен от число без използване на метода sqrt(). . Тя е най-популярната въпрос попита в Java интервю .

Ако квадратът на число е x, квадратният корен от това число ще бъде числото, умножено по себе си. Например корен квадратен от 625 е 25. Ако умножим 25 два пъти, получаваме квадрата на числото. Математически квадратният корен на число се дава като:

x=√х

Използвахме следната формула, за да намерим корен квадратен от число.

sqrtn+1=(квн+(брой/квн))/2,0

Забележка: Първото sqrt число трябва да бъде въведеното число/2.

Нека приложим горната формула в a Java програма и намерете корен квадратен.

FindSquareRootExample1 .java

 import java.util.Scanner; public class FindSquareRootExample1 { public static void main(String[] args) { System.out.print('Enter a number: '); //creating object of the Scanner class Scanner sc = new Scanner(System.in); //reading a number form the user int n = sc.nextInt(); //calling the method and prints the result System.out.println('The square root of '+ n+ ' is: '+squareRoot(n)); } //user-defined method that contains the logic to find the square root public static double squareRoot(int num) { //temporary variable double t; double sqrtroot=num/2; do { t=sqrtroot; sqrtroot=(t+(num/t))/2; } while((t-sqrtroot)!= 0); return sqrtroot; } } 

Резултат 1:

 Enter a number: 12 The square root of 12 is: 3.4641016151377544 

Резултат 2:

 Enter a number: 25 The square root of 25 is: 5.0 

Нека видим друга логика за намиране на корен квадратен.

В следващия пример сме използвали следната процедура, за да намерим корен квадратен.

  • Инициализирахме променлива на итератор i=1 .
  • Проверете дали числото, което сме въвели, е перфектен квадрат или не. Ако на квадрат от i е равно на n, т.е ще бъде стойността на корен квадратен от n.
  • В противен случай намерете най-ниската стойност на i . Не забравяйте, че квадратът на i трябва да е по-голямо от n . Квадратният корен на число се намира между i-1 и i . След като изпълним стъпките, използваме двоичен алгоритъм за търсене за намиране на корен квадратен от число до n знака след десетичната запетая.
  • Увеличете променливата i с 1 .

Алгоритъм за двоично търсене

  • Намери средна стойност на i-1 и i.
  • Намерете квадрата на средна стойност и го сравнете с n.
    • Ако средна стойност * средна стойност = n , средната стойност е корен квадратен от даденото число. Сравнете квадрата на средната стойност с n (до n знака след десетичната запетая), ако разликата е незначителна, средната стойност ще бъде корен квадратен от числото.
    • Ако средна стойност * средна стойност > n , квадратният корен принадлежи на първата половина .
    • Ако средна стойност * средна стойност, квадратният корен принадлежи на втора половина .

Нека внедрим алгоритъма в програма на Java и намерим корен квадратен от число.

FindSquareRootExample2.java

 import java.util.Scanner; public class FindSquareRootExample2 { public static void main(String[] args) { double number = 0, sqrt=0; //object of the Scanner class Scanner sc = new Scanner(System.in); System.out.print('Enter a number: '); //reading a double value from the user number = sc.nextDouble(); //method calling sqrt = squareRoot(number); //prints the result System.out.println(The square root of '+number+ ' is ' +sqrt); } //user-defined method to find the square root of a number private static double squareRoot(double number) { //iterator variable int i = 1; while(true) { //for perfect square numbers if(i*i == number) return i; //for not perfect square numbers else if(i*i > number) //returns the value calculated by the method decimalSqrt() return decimalSqrt(number,i-1,i); //increments the variable i by 1 i++; } } // recursive method to find the square root of a number up to 7 decimal places private static double decimalSqrt(double number, double i, double j) //calculates the middle of i and j double midvalue = (i+j)/2; //finds the square of the midvalue double square = midvalue * midvalue; //compares the midvalue with square up to n decimal places if(square==number } 

Резултат 1:

 Enter a number: 625 The square root of 625.0 is 25.0 

Резултат 2:

 Enter a number: 129 The square root of 129.0 is 11.357816688716412