Home BOJ - 1676 - 팩토리얼 0의 개수
Post
Cancel

BOJ - 1676 - 팩토리얼 0의 개수

BOJ - 1676 - 팩토리얼 0의 개수

문제


1676번: 팩토리얼 0의 개수

문제 개념


문제

N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.

  • 10!이 12314400 이라 할 때 2가 출력 되어야 한다.

입력

첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)

출력

첫째 줄에 구한 0의 개수를 출력한다.

구현


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string> 
using namespace std;

int main()
{
    int num;
    cin >> num;
    int tmp1, tmp2, tmp3;
    tmp1 = num / 5;
    tmp2 = num / 25;
    tmp3 = num / 125;
    cout << tmp1 + tmp2 + tmp3;
    return 0;
}

SOL


  • 뒤에서 0이 나올 경우는 10의 제곱일 경우 뿐이다.
    • 따라서 5 그리고 2로 나눠지는 경우를 구한다.
    • N이 500까지기에 5, 25, 125의 개수를 구한 후 더해 문제를 해결한다.

Reference & 다른 PS 모음집


GitHub - ggh-png/PS: 2021.01.11 start

This post is licensed under CC BY 4.0 by the author.