치춘짱베리굿나이스
[백준] 1676 본문
팩토리얼 0의 개수
문제
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)
출력
첫째 줄에 구한 0의 개수를 출력한다.
풀이
const factorial = () => {
let n = Number(require("fs").readFileSync("/dev/stdin").toString().trim());
let ans = 0;
for (let i = 1; i <= n; i++) {
if (i % 125 === 0) ans += 3;
else if (i % 25 === 0) ans += 2;
else if (i % 5 === 0) ans += 1;
}
console.log(ans);
};
factorial();
반성회
굳이 팩토리얼 계산 안 하고 5의 개수 세어서 풀었다
25는 5의 2제곱이라 5가 두번 들어가므로 +2, 125는 5의 3제곱이라 5가 3번 들어가므로 +3
2와 5가 곱해져야 10이 되어서 0이 하나 추가되긴 하지만, 5의 개수보다 2의 개수가 훨씬 많기 때문에 (한 번 걸러 한번씩 늘어나므로) 5의 개수만 세어줘도 맞다
'Javascript + Typescript > 자바스크립트로 알고리즘풀기' 카테고리의 다른 글
[백준] 16170 (0) | 2022.07.03 |
---|---|
[백준] 15962 (0) | 2022.07.03 |
[백준] 1620 (0) | 2022.06.27 |
[백준] 2407 (0) | 2022.06.26 |
[백준] 2910 (0) | 2022.06.26 |
Comments