치춘짱베리굿나이스
[백준] 1312 본문
소수
문제
피제수(분자) A와 제수(분모) B가 있다. 두 수를 나누었을 때, 소숫점 아래 N번째 자리수를 구하려고 한다. 예를 들어, A=3, B=4, N=1이라면, A÷B=0.75 이므로 출력 값은 7이 된다.
입력
첫 번째 줄에 A와 B(1≤A, B≤100,000), N(1≤N≤1,000,000)이 공백을 경계로 주어진다.
출력
A÷B를 했을 때, 소숫점 아래 N번째 수를 출력한다.
풀이
const float = () => {
let [a, b, n] = require("fs")
.readFileSync("/dev/stdin")
.toString()
.trim()
.split(" ")
.map(Number);
a %= b;
for (let i = 0; i + 1 < n; i++) a = (a * 10) % b;
console.log(parseInt((a * 10) / b));
};
float();
반성회
테스트케이스에 소수점 백만자리까지 요구하므로 parseInt(a / b * (10 ^ n)) % 10
으로 풀 수 없다
- 소수점 자리수를 구할 때 나누어떨어지는 부분 (몫) 은 필요 없으므로 처음에
a
를b
로 나눈 나머지를a
에 저장한다 - 소수점
N - 1
자리까지는a
에 10을 곱하고b
로 나눈 나머지를a
에 저장한다 ⇒ 어차피 필요 없으므로 몫은 버리고 나머지만 취한다 - N번째 자리를 구하기 위해 직전까지 구해왔던 나머지
a
에 10을 곱한 후b
로 나눈 몫만 출력한다
'Javascript + Typescript > 자바스크립트로 알고리즘풀기' 카테고리의 다른 글
[백준] 3046 (0) | 2022.05.08 |
---|---|
[백준] 14888 (0) | 2022.05.08 |
[백준] 1759 (0) | 2022.05.08 |
[백준] 5337 (0) | 2022.05.08 |
[백준] 6603 (0) | 2022.05.08 |
Comments