computeSquareRoot

이용만·2023년 3월 29일
0

문제
수를 입력받아 제곱근 값을 소수점 두 자리까지 리턴해야 합니다.

주의사항
Math.sqrt 사용은 금지됩니다.

public class Solution { 
	public String computeSquareRoot(int num) {
    // 의사코드
    // 바빌로니아 법으로 푼다.
    // 소수점 3번째 자리까지 변화가 없어질 때까지 반복을 돌린다.

    // 임의의 양수 1로 지정, 제곱근 값과 가까울수록 빠르게 근사값을 구할 수 있다.
    double x = 1;

    double before = 2;

    //Math.abs : 해당 값의 절대값을 구하는 메서드
    while(Math.abs(before-x) >= 0.001){
      before = x;
      //바빌로니아 법 공식이다. 외워두는게 좋다.
      x = 0.5*(num/x + x);
    }
    //%.2f 는 소수점을 2자리까지 나타내겠다는 것이다.
    return String.format("%.2f", x);
	} 
}

사용한 메서드
Math.abs(x) : x의 값을 절대값으로 만든다.
String.format : 문자열의 형식을 지정한다.
%.2f : % 는 x의 값이 되고 2는 소수점 2자리까지, f는 실수형 형식이기 때문이다.

profile
성장하는 개발자가 되고자 합니다.

0개의 댓글