Java Program to Find Square Root of a Number Without sqrt Method

17 Mar 2025 | 4 分钟阅读

在 Java 中,如果使用预定义方法,查找数字的平方根非常容易。Java 的 Math 类提供 sqrt() 方法来查找数字的平方根。在本节中,我们将创建一个不使用 sqrt() 方法的 Java 程序来查找数字的平方根。这是Java 面试中最常问的问题

如果一个数的平方是 x,那么这个数的平方根就是这个数乘以它自己。例如,625 的平方根是 25。如果我们乘以 25 两次,我们得到这个数的平方。在数学上,一个数的平方根表示为

x=√x

我们使用了以下公式来查找数字的平方根。

sqrtn+1=(sqrtn+(num/sqrtn))/2.0

注意:第一个 sqrt 数字应该是输入数字/2。

让我们在Java 程序中实现上述公式并查找平方根。

FindSquareRootExample1 .java

输出 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 的最小值。记住i 的平方必须大于 n。一个数的平方根介于 i-1i 之间。执行完这些步骤后,我们使用二分查找算法来查找数字到 n 位小数的平方根。
  • 将变量 i 增加 1

二分查找算法

  • 找到 i-1 和 i 的中间值
  • 找到中间值的平方并与 n 进行比较。
    • 如果 midvalue * midvalue = n,那么中间值就是给定数字的平方根。如果中间值的平方与 n 的差很小(精确到 n 位小数),则中间值就是该数字的平方根。
    • 如果 midvalue * midvalue > n,则平方根属于前半部分
    • 如果 midvalue * midvalue < n,则平方根属于后半部分

让我们在 Java 程序中实现该算法并查找数字的平方根。

FindSquareRootExample2.java

输出 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

下一个主题Java 教程