[코테 스터디] 1676번. 팩토리얼 0의 개수
2024. 3. 20. 13:31ㆍ백준 문제와 소스 코드
문제
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다.
출력
첫째 줄에 구한 0의 개수를 출력한다.
예제 입력1
10
예제 출력1
2
예제 입력2
3
예제 출력2
0
문제 해결 방법
1.0의 개수를 찾아내는 것은 전체를 곱했을 때 10의 몇승인지를 찾아내는 것과 같다.
2. 10은 소수인 2와 5의 곱으로 나타나는데, 잘 생각해보면 N까지 5의 개수를 찾아내는 것과 똑같다.
3. N을 계속 5로 나누고 나온 몫들의 합을 구한다.
코드
#include<iostream>
using namespace std;
int main()
{
int N;
int result = 0;
cin >> N;
while (N / 5 != 0)
{
result += N / 5;
N /= 5;
}
cout << result;
}
'백준 문제와 소스 코드' 카테고리의 다른 글
[코테 스터디] 1929번. 소수 구하기 (0) | 2024.03.23 |
---|---|
[코테 스터디] 1920번. 수 찾기 (0) | 2024.03.20 |
003. 구간 합 구하기 1 (구간 합, 배열 초기화, C++ 시간 단축, endl '\n' 차이) (0) | 2024.03.10 |
002. 평균 (식의 간단화 및 형변환) (0) | 2024.03.10 |
001. 숫자의 합 구하기 (문자 -> 숫자 혹은 숫자 -> 문자) (0) | 2024.03.08 |