주소 : https://www.acmicpc.net/problem/1676
1676번: 팩토리얼 0의 개수
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
www.acmicpc.net
#define _CRT_SECURE_NO_WARINGS
#include <iostream>
using namespace std;
int main()
{
int ans = 0;
int n;
cin >> n;
for (int i = 5;i <= n;i *= 5)
ans += n / i;
cout << ans;
}
마무리 : 처음 문제를 풀었을 때 제대로 보지 않아 중간에 0도 포함되어야 하는 줄 알았다. 다시 보니 그런 문제가 아님을 깨닫고 뒤에서 부터 0을 세기 위해서는10의 제곱수를 구해야한다는 이야기인데 5의 팩토리얼은 자동적으로 10의 제곱수가 될 수 있기 때문에 5의 제곱수를 나누어 답을 구한다.
'백준 > C++' 카테고리의 다른 글
백준 1620번 : 나는야 포켓몬 마스터 이다솜 [C++] (0) | 2022.08.26 |
---|---|
백준 11723번 : 집합 [C++] (0) | 2022.08.26 |
백준 18111번 : 마인크래프트 [C++] (0) | 2022.08.23 |
백준 2805번 : 나무 자르기 [C++] (0) | 2022.08.23 |
백준 1874번 : 스택 수열 [C++] (0) | 2022.08.23 |