2014년 8월 11일 월요일

조합

BOJ [조합] 2004

SOL) 5의 개수, 2의 개수를 계산한 후 둘중 작은 값을 출력한다.

[-] Collapse
#include<stdio.h>
#define min(a,b) a < b ? a : b
int cal(int f, int n){
    int divV = f, ret = 0;
    while (n >= divV){
        ret += n / divV;
        if (n / f < divV) break;
        divV *= f;
    }
    return ret;
}
int main(){
    int n, m; scanf("%d%d", &n, &m);
    printf("%d", min(cal(2, n) - cal(2, n - m) - cal(2, m), cal(5, n) - cal(5, n - m) - cal(5, m)));
}

댓글 없음:

댓글 쓰기