-Math.sqrt()사용 안함
function computeSquareRoot(num) {
// TODO: 여기에 코드를 작성합니다.
// 바빌로니아 점화법 -> xn = (xn-1 + num/xn-1) / 2
// 초기값 xn-1은 아무거나, num은 제곱근을 구해야하는 수
// toFixed(2) : 소수점 2번째 자리까지
let initValue = 1; // 초기값
// 임의의 제곱근의 제곱값이 num과 같지 않을 경우 반복, 같을 경우 종료
while(Math.pow(initValue,2)!==num) {
// 만약 구한 제곱근 값의 제곱(소수 둘째 자리)이 num(제곱근을 구해야 하는 값)과 값은 경우 break;
if( Number((initValue*initValue).toFixed(2)) === num ) break;
initValue = (initValue + num/initValue) / 2 ; // 바빌로니아 점화법으로 구한 제곱근 유사값
}
// toFixed() 메서드는 문자열을 반환하기 때문에 Number()로 변환
return Number(initValue.toFixed(2));
}
'알고리즘' 카테고리의 다른 글
재귀에 대한 전반적인 개념 (0) | 2021.07.15 |
---|---|
유효성 검사 (0) | 2021.05.07 |
문자열을 입력받아 가장 많이 반복되는 문자(letter)를 반환 (0) | 2021.05.07 |
문자열을 입력받아 문자열을 구성하는 각 문자(letter)를 키로 갖는 객체반환 (0) | 2021.05.07 |
계산기 (0) | 2021.05.07 |