logo

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

На Яві до знайти квадратний корінь із числа дуже легко, якщо ми використовуємо заздалегідь визначений метод. Java математика клас забезпечує sqrt() метод знаходження квадратного кореня з числа. У цьому розділі ми створимо a Програма на Java для знаходження квадратного кореня з числа без використання методу sqrt(). . Він найпопулярніший запитання запитав у Java співбесіда .

Якщо квадрат числа дорівнює х, квадратним коренем цього числа буде число, помножене на себе. Наприклад, квадратний корінь із 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, i буде значенням квадратного кореня з n.
  • В іншому випадку знайдіть найменше значення i . Пам'ятайте, що площа i має бути більше ніж n . Квадратний корінь із числа лежить між і-1 і i . Після виконання кроків ми використовуємо бінарний алгоритм пошуку знайти квадратний корінь із числа до n знаків після коми.
  • Збільште змінну i на 1 .

Алгоритм бінарного пошуку

  • Знайди середньої вартості i-1 та i.
  • Знайдіть квадрат середньої вартості і порівняйте його з н.
    • Якщо середнє значення * середнє значення = 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