본문 바로가기

공부합시다

거듭 제곱 빠른 계산

 

i64 ipow(i64 n, i64 x)
{
    if (x == 0)
        return 1;

    i64 half = ipow(n, x / 2);
    half = (half * half) % MOD;

    if (x % 2 == 0)
        return half;

    return (half * n) % MOD;
}

 

'공부합시다' 카테고리의 다른 글

결과 MOD 나누는 거 관련  (0) 2020.10.15
비트마스크로 부분집합 관리  (0) 2020.09.21
std::bitset  (0) 2020.09.01
점 3개의 방향성을 나타내는 CCW  (0) 2020.09.01
소수 판별법 - 에라토스테네스의 체  (0) 2020.08.04