logo

תוכנית Java למציאת שורש ריבועי של מספר ללא שיטת sqrt

ב-Java, to למצוא את השורש הריבועי של מספר קל מאוד אם אנו משתמשים בשיטה המוגדרת מראש. Java מתמטיקה הכיתה מספקת sqrt() שיטה למצוא את השורש הריבועי של מספר. בחלק זה, ניצור א תוכנית Java למציאת השורש הריבועי של מספר מבלי להשתמש בשיטת sqrt() . זה הפופולרי ביותר שְׁאֵלָה שאל ב ראיון עם Java .

אם הריבוע של מספר הוא x, השורש הריבועי של מספר זה יהיה המספר כפול עצמו. לדוגמה, השורש הריבועי של 625 הוא 25. אם נכפיל 25 פעמיים, נקבל את הריבוע של המספר. מבחינה מתמטית, השורש הריבועי של מספר ניתן כך:

x=√איקס

השתמשנו בנוסחה הבאה כדי למצוא את השורש הריבועי של מספר.

sqrtn+1=(sqrtנ+(num/sqrtנ))/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 . זכור כי הריבוע של אני חייב להיות גדול מ-n . השורש הריבועי של מספר נמצא ביניהם i-1 ו אני . לאחר ביצוע השלבים, אנו משתמשים ב- אלגוריתם חיפוש בינארי כדי למצוא את השורש הריבועי של מספר עד n מקומות עשרוניים.
  • הגדל את המשתנה i לפי 1 .

אלגוריתם חיפוש בינארי

  • למצוא את ה ערך בינוני של i-1 ו-i.
  • מצא את הריבוע של ערך בינוני ולהשוות את זה עם נ.
    • אם midvalue * midvalue = n , הערך האמצעי הוא השורש הריבועי של המספר הנתון. השווה את הריבוע של ערך אמצע עם n (עד n מקומות עשרוניים) אם ההפרש הוא מינורי, הערך האמצעי יהיה השורש הריבועי של המספר.
    • אם midvalue * midvalue > 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