본문 바로가기

코드포스

[코드포스 Practice12] A. k-rounding

int count_num(i64 n, int div)
{
    int count;
    
    count = 0;
    while (n > 0 && n % div == 0)
    {
        count++;  
        n /= div;
    }
    return (count);
}
 
int main() {
    i64 n;
    int k;
    scanf("%lld %d", &n, &k);
    
    if (k == 0)
    {
        printf("%lld", n);
        return (0);
    }
    
    int a = count_num(n, 5);
    int b = count_num(n, 2);
    //cout << a << " " << b << endl;
    
    for (int i = a; i < k; i++)
        n *= 5;
    for (int i = b; i < k; i++)
        n *= 2;
    
    printf("%lld\n", n);
    
    return 0;
}

다 짜고 기뻤지..

 

lld로 틀릴지도 모르고...

 

+) 아 0ll (영엘엘) 이건 정수 뒤에 ll 붙이면 int 타입이 아니라 long long 타입이 되는 거 

max(0ll, k - two)

max안에 타입이 같아야해서 0ll로 넣었다.