본문 바로가기
개발 노트/백준, 프로그래머스 풀이

[백준 1676/c++] 팩토리얼 0의 개수

by tokkiC 2022. 7. 16.

구현에 가까운 문제였다

무슨 수를 곱하던 10의 배수를 곱하면 결국 맨 뒤에 0이 모이게 된다

뒤의 0의 수는 10을 곱한 수와 같고 10은 2와 5를 곱한 수와 같다

2는 5보다 많으니 최종 수가 5로 몇 번 나눠지는 지를 구해 약수로 5가 몇개인지 구하고

그 수가 0의 개수와 같다고 판단하면 문제 해결인 문제다

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

 

1676번: 팩토리얼 0의 개수

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

www.acmicpc.net

#include <bits/stdc++.h>
using namespace std;

int main() {
	
	int n;
	int cnt=0;
	
	cin >> n;
	if (n == 0)
	{
		cout << 0;
		return 0;
	}
	while (n > 0)
	{
		cnt += n/5;
		n/=5;
	}
	cout << cnt << "\n";
	
	return 0;
}

댓글