2020.코딩일지
[JS][코플릿]Algorithm Basic-17_computeSquareRoot 본문
728x90
수를 입력받아 제곱근 값을 소수점 두 자리까지 리턴해야 합니다.
- 최대 소수점 둘째 짜리까지 구합니다. (소수점 셋째 자리에서 반올림)
- Math.sqrt 사용은 금지됩니다.
힌트
- 소수점 처리는 javascript 표준 내장 객체인 Number를 검색해 봅니다. (js decimal places limit 또는 자바스크립트 소수점 자리수)
- 항상 타입을 주의하여야 합니다.
- 각 자리수(1, 0.1, 0.01, 0.001)마다 (목표값을 넘지 않는) 근사값을 구하는 방식이 있습니다.
- 제곱근을 구하는 방법 중 바빌로니아 법이 있습니다. 바빌로니아 법의 점화식(recurrence formula)을 이해할 수 있다면, 해당 식을 이용해 문제를 풀어도 좋습니다.
입출력예시
더보기
//입출력예시
let output = computeSquareRoot(9);
console.log(output); // --> 3
output = computeSquareRoot(6);
console.log(output); // --> 2.45
👻
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+= diffs[i];
}
if (base * base === num) {
return base;
} else {
base -= diffs[i];
}
}
return Number(base.toFixed(2));
}
toFixed()
자바스크립트에서 소수점을 처리하는 두 가지 방법 toPrecision()과 toFixed()
numObj = 0.0005678
console.log(numObj.toFixed()); // 결과: '0'
console.log(numObj.toFixed(5)); // 결과: '0.00057'
console.log(numObj.toFixed(3)); // 결과: '0.001'
console.log(numObj.toFixed(1)); // 결과: '0.0'
'algorithm' 카테고리의 다른 글
[JS][코플릿]Algorithm Basic-18_numberSearch (0) | 2022.08.14 |
---|---|
[JS][코플릿]Algorithm Basic-16_isIsogram (0) | 2022.08.14 |
[JS][코플릿]Algorithm Basic-15_modulo (0) | 2022.08.07 |
[코플릿]Algorithm Basic-14_superIncreasing (0) | 2022.08.07 |
[코플릿]Algorithm Basic-13_readVertically (0) | 2022.08.07 |
Comments