문제
수를 입력받아 제곱근 값을 소수점 두 자리까지 리턴해야 합니다.
주의사항
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는 실수형 형식이기 때문이다.