[백준] 1676번 팩토리얼 0의 개수 / C++
#문제
#풀이
#include <iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false); cin.tie(NULL);
int N;
cin >> N;
int cnt = N / 5 + N / 25 + N / 125;
cout << cnt;
return 0;
}
#정리
입력받은 수의 팩토리얼을 쭉 나열하고, 맨 뒤에부터 0의 개수를 세는 문제. 입력 받는 가장 큰 수인 N을 팩토리얼 연산하면 굉장히 큰 수가 나오기 때문에 계산하기 어렵다. 하지만 0의 개수를 세는 것은 문제없다. N이 5로 몇 번 나누어 떨어지는지에 따라 결정되기 때문이다. 5의 배수 중 N의 최대값 보다 작은 수, 125까지의 나눈 수를 더한 값을 출력하여 해결.
Enjoy Reading This Article?
Here are some more articles you might like to read next: