반응형
소수점 두자리까지 (세번째 자리에서 반올림) 구하기
바빌로니아 법으로 제곱근 구하기
방법 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()
반응형
'JavaScript' 카테고리의 다른 글
TIL 1010 arr.slice() VS str.slice() (0) | 2020.10.12 |
---|---|
TIL 1009 소수구하기 null 과 undefined 구분 (0) | 2020.10.12 |
TIL 1007 _.sortBy(arr.sort()) _.flatten(재귀함수) 3일걸린 문제 (0) | 2020.10.07 |
TIL 0928 for in, Array와 Object 구분법 (0) | 2020.10.07 |
TIL 0925~26 arr.reduce() filter() map() sort() some() find() (0) | 2020.09.25 |
댓글