https://www.acmicpc.net/problem/2004
문제
nCm의 끝자리 0의 개수를 출력하는 프로그램을 작성하시오.
코드
#include <iostream>
using namespace std;
int main(void){
long long n, m;
cin>>n>>m;
long long ans5 = 0;
long long ans2 = 0;
// 5의 개수
for(long long i = 5; i <= n; i *= 5) ans5 += n / i; // n!
for(long long i = 5; i <= n - m; i *= 5) ans5 -= (n - m) / i; // (n - m)!
for(long long i = 5; i <= m; i *= 5) ans5 -= m / i; // m!
// 2의 개수
for(long long i = 2; i <= n; i *= 2) ans2 += n / i; // n!
for(long long i = 2; i <= n - m; i *= 2) ans2 -= (n - m) / i; // (n - m)!
for(long long i = 2; i <= m; i *= 2) ans2 -= m / i; // m!
cout<<(ans5 > ans2 ? ans2 : ans5);
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
백준 11724번: 연결 요소의 개수 (0) | 2020.05.18 |
---|---|
백준 1260번: DFS와 BFS (0) | 2020.05.18 |
백준 1676번: 팩토리얼 0의 개수 (0) | 2020.05.18 |
백준 10872번: 팩토리얼 (0) | 2020.05.18 |
백준 11653번: 소인수분해 (0) | 2020.05.18 |