logo

Java-programma om de vierkantswortel van een getal te vinden zonder sqrt-methode

Op Java, tot Zoek de vierkantswortel van een getal is heel eenvoudig als we de vooraf gedefinieerde methode gebruiken. Java Wiskunde klasse biedt sqrt() methode om de wortel van een getal te vinden. In deze sectie maken we een Java-programma om de vierkantswortel van een getal te vinden zonder de methode sqrt() te gebruiken . Het is het populairst vraag gevraagd in de Java-interview .

Als het kwadraat van een getal x is, is de wortel van dat getal het getal vermenigvuldigd met zichzelf. De vierkantswortel van 625 is bijvoorbeeld 25. Als we 25 twee keer vermenigvuldigen, krijgen we het kwadraat van het getal. Wiskundig gezien wordt de vierkantswortel van een getal gegeven als:

x=√X

We hebben de volgende formule gebruikt om de vierkantswortel van een getal te vinden.

sqrtn+1=(vierkantN+(aantal/vierkantN))/2,0

Opmerking: het eerste sqrt-nummer moet het invoernummer/2 zijn.

Laten we de bovenstaande formule implementeren in a Java-programma en vind de vierkantswortel.

Sree Ramanujan

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

Uitgang 1:

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

Uitgang 2:

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

Laten we een andere logica bekijken om de vierkantswortel te vinden.

draad.vernietigen

In het volgende voorbeeld hebben we de volgende procedure gebruikt om de vierkantswortel te vinden.

  • We hebben een iteratorvariabele geïnitialiseerd ik=1 .
  • Controleer of het getal dat we hebben ingevoerd een perfect vierkant is of niet. Als de kwadraat van i is gelijk aan n, i zal de wortelwaarde van n zijn.
  • Zoek anders de laagste waarde van i . Bedenk dat het kwadraat van i moet groter zijn dan n . De wortel van een getal ligt ertussen ik-1 En i . Na het uitvoeren van de stappen gebruiken we de binair zoekalgoritme om de vierkantswortel te vinden van een getal tot n decimalen.
  • Verhoog de variabele i met 1 .

Binair zoekalgoritme

  • Vind de middenwaarde van i-1 en ik.
  • Zoek het kwadraat van middenwaarde en vergelijk het met n.
    • Als middenwaarde * middenwaarde = n , is de middenwaarde de vierkantswortel van het gegeven getal. Vergelijk het kwadraat van de middenwaarde met n (tot n decimalen). Als het verschil klein is, is de middenwaarde de wortel van het getal.
    • Als middenwaarde * middenwaarde > n , de vierkantswortel behoort tot de eerste helft .
    • Als middenwaarde * middenwaarde, de vierkantswortel behoort tot de tweede helft .

Laten we het algoritme in een Java-programma implementeren en de vierkantswortel van een getal vinden.

ZoekSquareRootExample2.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 } 

Uitgang 1:

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

Uitgang 2:

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