Mặc dù tính căn bậc hai trong Java không phải là một câu hỏi phổ biến đối với các cuộc phỏng vấn phát triển phần mềm, nhưng đôi khi, một cuộc phỏng vấn có thể hỏi bạn những câu như: “ Bạn có một số nguyên x. Tạo một chương trình Java có thể tính căn bậc hai của nó”. Để đảm bảo rằng một câu hỏi cơ bản như vậy không làm bạn mất cảnh giác, chúng ta hãy xem cách tính căn bậc hai trong Java.
Căn bậc hai và Căn bậc hai: Ôn tập các khái niệm toán học
Để đảm bảo bạn không gặp nhầm lẫn khi xử lý bình phương và căn, chúng ta hãy xem lại lý thuyết về khái niệm này. Bình phương của một số là số đó nhân với chính nó. Nếu n = 4 thì n^2 = 4 4 = 16. Căn bậc hai của một số là số mà nếu nhân với chính nó sẽ cho một giá trị X cho trước. Ví dụ, bạn phải tìm căn bậc hai của n = 16, bằng cách tìm một số mà nếu nâng lên lũy thừa hai sẽ được 16, bạn sẽ giải được bài toán. Trong trường hợp n, căn bậc hai của số 16 là 4 (vì 4 * 4 = 16).Cách thực hiện căn bậc hai trong Java bằng cách sử dụng java.lang.Math.sqrt()
Cách phổ biến nhất để tìm căn bậc hai của một số trong Java là áp dụngjava.lang.Math.sqrt()
phương thức này. Đây là cú pháp chung của phương thức java.lang.Math.sqrt():
public static double sqrt(double a)
Trong phương pháp này, a là một giá trị được nâng lên thành lũy thừa của hai mà bạn muốn lấy căn bậc hai. Khi nhà phát triển áp dụng java.lang.Math.sqrt()
, phương thức sẽ trả về căn bậc hai dương của a (nếu a lớn hơn 0). Đối với các đối số phủ định, java.lang.Math.sqrt
trả về đầu ra NaN.
Các trường hợp đặc biệt của java.lang.Math.sqrt() trả về
Như đã đề cập ở trên, trong hầu hết các trường hợp, phương thức trả về giá trị dương. Tuy nhiên, có một số trường hợp cụ thể mà nhà phát triển nên biết khi tạo chương trình tìm kiếm gốc.- Đối với các đối số có giá trị NaN hoặc âm, phương thức sẽ trả về kết quả NaN.
- Đối với các đối số dương vô hạn, phương thức sẽ trả về kết quả dương vô hạn.
- Đối với các đối số bao gồm số 0 dương hoặc âm, căn bậc hai của a sẽ bằng a.
Ví dụ về việc sử dụng java.lang.Math.sqrt()
package MyPackage;
public class SquareRoot2 {
public static void main(String args[])
{
double a = 100;
System.out.println(Math.sqrt(a));
// For positive values, the output is the square root of x
double b = -81.00;
System.out.println(Math.sqrt(b));
// For negative values as input, Output NaN
double c = 0.0/0;
// Input NaN, Output NaN
System.out.println(Math.sqrt(c));
double d = 1.0/0;
// For inputs containing positive infinity, Output positive infinity
System.out.println(Math.sqrt(d));
double e = 0.0;
// Input positive Zero, Output positive zero
System.out.println(Math.sqrt(e));
}
}
Tìm căn bậc hai trong bài toán thực hành Java
Bây giờ bạn đã biết cách tạo một chương trình tính căn bậc hai trong Java, hãy xem cách khái niệm này phù hợp với các vấn đề thực hành nâng cao hơn. Ví dụ, một người phỏng vấn có thể yêu cầu bạn giải một phương trình bậc hai. Chúng ta hãy xem làm thế nào để xử lý một vấn đề như vậy. Vấn đề: giải phương trình bậc hai trong đó a = 1, b = 5, c = 2. Lời giải:
import java.util.Scanner;
public class Exercise2 {
public static void main(String[] Strings) {
Scanner input = new Scanner(System.in);
System.out.print("Input a: ");
double a = input.nextDouble();
System.out.print("Input b: ");
double b = input.nextDouble();
System.out.print("Input c: ");
double c = input.nextDouble();
double result = b * b - 4.0 * a * c;
if (result > 0.0) {
double r1 = (-b + Math.pow(result, 0.5)) / (2.0 * a);
double r2 = (-b - Math.pow(result, 0.5)) / (2.0 * a);
System.out.println("The roots are " + r1 + " and " + r2);
} else if (result == 0.0) {
double r1 = -b / (2.0 * a);
System.out.println("The square root is " + r1);
} else {
System.out.println("There are no real square roots in the equation.");
}
}
}
Phần kết luận
Đây là tóm tắt ngắn gọn về cách tìm căn bậc hai của một số trong Java. Đối với người mới bắt đầu phát triển phần mềm, bạn nên thực hành các tình huống khác nhau (a>0, a<0, a = 0) để nắm vững khái niệm này. Sau khi bạn hiểu được nội dung cơ bản của phương thức java.lang.Math.sqrt, hãy bắt đầu áp dụng phương thức này trong các chương trình phức tạp, xử lý các tác vụ như giải phương trình bậc hai.
Đọc thêm: |
---|
GO TO FULL VERSION