>  기사  >  Java  >  Java에서 제곱근(sqrt)을 찾는 코드 데모

Java에서 제곱근(sqrt)을 찾는 코드 데모

Y2J
Y2J원래의
2017-04-25 17:29:028867검색

Java의 제곱근(sqrt) 알고리즘

제곱근(sqrt, 제곱근)은 수학에서 흔히 사용되는 수학 공식입니다.

제곱근을 구하는 프로그램을 사용하는 것은 크게 두 단계로 나뉩니다.

첫 번째 단계: while() 루프, 루프 수와 소수 자릿수, 무한 루프 및 다중 소수 자릿수 방지;

2단계: 제곱근을 분해하여 루프를 사용하여 점진적으로 감소하여 제곱근에 접근합니다.

마찬가지로 다른 제곱근도 사용할 수 있습니다. 확장과 유사하지만
짝수의 제곱근은 입력이 양수인지 확인해야 합니다.
홀수의 제곱근은 루프 수렴을 보장하기 위해 양수로 변환한 다음 결과가 양수인지 음수인지 판단해야 합니다.

코드는 다음과 같습니다.

/* 
 * 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); 
  } 
}

출력:

sqrt(4.0) = 2.0 
cbrt(9.0) = -3.0

위 내용은 Java에서 제곱근(sqrt)을 찾는 코드 데모의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.