logo

Sqrt Yöntemi Olmadan Bir Sayının Karekökünü Bulan Java Programı

Java'da, bir sayının karekökünü bulma Eğer önceden tanımlanmış yöntemi kullanıyorsak çok kolaydır. Java Matematik sınıf sağlar sqrt() Bir sayının karekökünü bulma yöntemi. Bu bölümde bir oluşturacağız. sqrt() yöntemini kullanmadan bir sayının karekökünü bulan Java programı . Bu en popüler olanıdır soru içinde sorulan Java röportajı .

Bir sayının karesi x ise o sayının karekökü sayının kendisiyle çarpımı olacaktır. Örneğin 625'in karekökü 25'tir. 25'i iki kere çarparsak sayının karesini elde ederiz. Matematiksel olarak bir sayının karekökü şu şekilde verilir:

x=√X

Bir sayının karekökünü bulmak için aşağıdaki formülü kullandık.

karen+1=(sqrtN+(sayı/kareN))/2.0

Not: İlk sqrt numarası giriş numarası/2 olmalıdır.

Yukarıdaki formülü bir uygulamada uygulayalım. Java programı ve karekökünü bulun.

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; } } 

Çıkış 1:

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

Çıkış 2:

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

Karekökü bulmak için başka bir mantık görelim.

Aşağıdaki örnekte karekökü bulmak için aşağıdaki prosedürü kullandık.

  • Bir yineleyici değişken başlattık ben=1 .
  • Girdiğimiz sayının tam kare olup olmadığını kontrol edin. Eğer i'nin karesi eşittir n, i n'nin karekök değeri olacaktır.
  • Aksi takdirde, bulun i'nin en düşük değeri . Unutmayın ki karesi i n'den büyük olmalı . Bir sayının karekökü arasında yer alır i-1 Ve Ben . Adımları uyguladıktan sonra şunu kullanıyoruz: ikili arama algoritması n'ye kadar ondalık basamağa kadar bir sayının karekökünü bulmak için.
  • i değişkenini artırın 1 .

İkili Arama Algoritması

  • Bul orta değer i-1 ve i.
  • karesini bulun orta değer ve onu n ile karşılaştırın.
    • Eğer orta değer * orta değer = n orta değer verilen sayının kareköküdür. Orta değerin karesini n (n'ye kadar ondalık basamağa kadar) ile karşılaştırın, eğer fark küçükse, orta değer sayının karekökü olacaktır.
    • Eğer orta değer * orta değer > n , karekök şuna aittir: ilk yarı .
    • Eğer orta değer * orta değer, karekök şuna aittir: ikinci yarı .

Algoritmayı bir Java programında uygulayalım ve bir sayının karekökünü bulalım.

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 } 

Çıkış 1:

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

Çıkış 2:

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