본문 바로가기
백준/C++

백준 1676번 : 팩토리얼 0의 개수 [C++]

by 대니스 2022. 8. 25.

주소 : 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의 제곱수를 나누어 답을 구한다.