虽然在 Java 中计算平方根并不是软件开发面试的常见问题,但有时面试可能会问您类似这样的问题:“ 你有一个整数 x。创建一个 Java 程序来计算它的平方根”。 为了确保这样一个基本问题不会让您措手不及,让我们来看看如何在 Java 中求平方根。
平方和平方根:复习数学概念
为了确保您在处理平方和根时没有混淆,让我们回顾一下这个概念的理论。一个数的平方就是这个数乘以它自己。如果 n = 4,则 n^2 = 4 4 = 16。一个数的平方根是将其与自身相乘得到给定值 X 的数。例如,您必须找到 n = 的平方根16、通过找到一个数,如果提升到2的次方给出16,你就会解决这个问题。对于 n,数字 16 的平方根是 4(因为 4 * 4 = 16)。如何使用 java.lang.Math.sqrt() 在 Java 中求平方根
在 Java 中查找数字平方根的最常见方法是应用 方法java.lang.Math.sqrt()
。下面是 java.lang.Math.sqrt() 方法的一般语法:
public static double sqrt(double a)
在该方法中,a 是一个提升到您想要求平方根的 2 次方的值。一旦开发人员申请java.lang.Math.sqrt()
,该方法将返回 a 的正平方根(如果 a 大于 0)。对于负参数,java.lang.Math.sqrt
返回 NaN 输出。
java.lang.Math.sqrt() 返回的特例
如上所述,在大多数情况下,该方法返回正值。但是,开发人员在创建寻根程序时应该注意一些特定情况。- 对于具有 NaN 值或负数的参数,该方法将返回 NaN 结果。
- 对于无限正的参数,该方法将返回无限正的结果。
- 对于由正零或负零组成的参数,a 的平方根将等于 a。
使用 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));
}
}
Java练习题求平方根
现在您已经知道如何在 Java 中创建一个计算平方根的程序,让我们来看看这个概念如何适用于更高级的实践问题。例如,面试官可能会要求您求解二次方程。让我们来看看如何处理这样的问题。 问题:求解一个二次方程,其中 a = 1,b = 5,c = 2。 解决方案: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.");
}
}
}
结论
这是关于在 Java 中求一个数的平方根的简要概述。对于软件开发初学者来说,练习不同的场景(a>0、a<0、a = 0)以牢牢掌握概念是个不错的主意。一旦了解了 java.lang.Math.sqrt 方法的来龙去脉,就可以开始在复杂的程序中应用该方法,处理诸如求解二次方程式之类的任务。
更多阅读: |
---|