CS/baekjoon

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

hanjongho 2021. 1. 30. 17:59

http://www.acmicpc.net/problem/1676

 

1676번: 팩토리얼 0의 개수

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

www.acmicpc.net

풀이) 

0은 2랑 5를 곱해지면서 생기는 경우 말고는 존재하지 않는다. 그렇기 때문에 2와 5의 갯수를 알면 0의 갯수를 구할 수 있다. 여기서 더 나아가 2의 갯수는 충분히 존재하기 때문에 5의 갯수만 구하더라도 답을 구할 수 있다. 0부터 4까지는 5가 나오지 않기 때문에 갯수는 0이고 5이상부터 계산해주면 된다. 

#include <iostream>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    
	int num, count = 0;
	cin >> num;
	while (num >= 5)
	{
		count += num / 5; 
		num /= 5;
	}
	cout << count;
	return 0;
}

 

 

제 코드는 절대 완벽하지 않습니다

더 좋은 풀이방법 혹은 코드에 관한 질문이 있으시면 언제든 댓글주세요!