java Square root (sqrt) algorithm
Square root (sqrt, square root) is a common mathematical formula in mathematics;
Using a program to find the square root is mainly divided into two steps:
The first step: while() loop, controls the number of loops and the number of decimal places, Prevent infinite loops and multiple decimal places;
Step 2: By decomposing the square root, use loops to gradually decrease and approach the square root;
Similarly, other square roots can also be used Similar to the expansion, but it should be noted that
even-numbered square roots need to ensure that the input is a positive number;
odd-numbered square roots need to be converted into positive numbers to ensure loop convergence, and then judge whether the result is positive or negative;
The code is as follows:
/* * Algorithms.java * * Created on: 2013.12.03 * Author: Wendy */ /*eclipse std kepler, jdk 1.7*/ public class Algorithms { public static double sqrt(double c) { if(c<0) return Double.NaN; //NaN: not a number double err = 1e-15; //极小值 double t = c; while (Math.abs(t-c/t) > err*t) //t^2接近c, 防止小数 t = (c/t + t)/2.0; return t; } public static double cbrt(double c) { boolean b = (c>0) ? true : false; //保存c的符号 c = (c>0) ? c : -c; double err = 1e-15; double t = c; while(Math.abs(t*t-c/t) > err*t) t = (c/(t*t)+t)/2.0; t = (b) ? t : -t; return t; } public static void main(String[] args) { double r = sqrt(4.0); System.out.println("sqrt(4.0) = " + r); double rc = cbrt(-27.0); System.out.println("cbrt(9.0) = " + rc); } }
Output:
sqrt(4.0) = 2.0 cbrt(9.0) = -3.0
The above is the detailed content of Code demonstration for finding the square root (sqrt) in java. For more information, please follow other related articles on the PHP Chinese website!