본문 바로가기
JavaScript

제곱근 구하기 바빌로니아법 .toFixed()

by 짱닭 2020. 10. 8.
반응형

소수점 두자리까지 (세번째 자리에서 반올림) 구하기

바빌로니아 법으로 제곱근 구하기

임의로 x0 = 1로 정하고 과정을 시작한다

방법 1.

바빌로니아법을 활용해서 코딩한 예

  let result=0;
  let x=1;

  for(let i=0; i<30; i++){
    x = ( x + ( num / x )) / 2
  }
  result=x;

  result=(Math.round(result*100)/100)

상단의 바빌로니아법으로 제곱근 구하기의 2번 과정을 30번 반복해서
num의 제곱근 근사치를 소수점 둘째자리까지 구하는 방법이다.

방법 2.

function computeSquareRoot(num) {
  const diffs = [1, 0.1, 0.01, 0.001];
  let base = 1;
  for (let i = 0; i < diffs.length; i++) {
    while (base * base < num) {
      base = base + diffs[i];
    }

    if (base * base === num) {
      return base;
    } else {
      base = base - diffs[i];
    }
  }
  return Number(base.toFixed(2));
}

1. while문 안에서 base의 값이 num 보다 커지지 않을 때까지 diffs의 i번째 인덱스를 더한다.
2. base > num 일 때, while 문을 빠져나와 base^2 === num 이면 base를 리턴한다.
3. 2번의 조건을 충족하지 못했을 때, base에서 diff 의 i 번째 인덱스를 뺀다.
4. 1~3번까지의 과정을 diffs의 마지막 인덱스 값까지 반복한다.
5. base의 소수점 둘째자리까지 반올림하여 리턴한다.

위에서 사용된 .toFixed()의 설명

.toFixed()

문자열로 반환하기 때문에 변환된 결과를 number타입으로 사용하려면 형변환을 거쳐야한다

반응형

댓글