Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

라이브러리 함수를 사용하지 않고 숫자의 제곱근 찾기 - JavaScript

<시간/>

Math.sqrt() 함수를 사용하지 않고 숫자를 받아 제곱근을 계산하는 JavaScript 함수를 작성해야 합니다.

예시

다음은 코드입니다 -

const square = (n, i, j) => {
   let mid = (i + j) / 2;
   let mul = mid * mid;
   if ((mul === n) || (Math.abs(mul - n) < 0.00001)){
      return mid;
   }else if (mul < n){
      return square(n, mid, j);
   }else{
      return square(n, i, mid);
   }
}
// Function to find the square root of n
const findSqrt = num => {
   let i = 1;
   const found = false;
   while (!found){
      // If n is a perfect square
      if (i * i === num){
         return i;
      }else if (i * i > num){
         let res = square(num, i - 1, i);
         return res;
      };
      i++;
   }
}
console.log(findSqrt(33));

출력

이것은 콘솔에서 다음과 같은 출력을 생성합니다 -

5.744562149047852

코드 이해

우리는 i =1에서 반복했습니다.

i * i =n이면 n은 제곱근이 i인 완전제곱이므로 i를 반환하고, 그렇지 않으면 i * i가 n보다 큰 가장 작은 i를 찾습니다.

이제 우리는 n의 제곱근이 구간 i – 1과 i에 있다는 것을 압니다. 그런 다음 이진 검색 알고리즘을 사용하여 제곱근을 찾았습니다.