zoukankan      html  css  js  c++  java
  • 快速幂

    引理:积的取余=取余的积的取余

    模板:

    long long Mode(long long a, long long b, long long mode)
    
    {
    
        long long sum = 1;
    
        a = a % mode;
    
     
    
        while (b > 0) {
    
            if (b % 2 == 1)        //判断是否是奇数,是奇数的话将多出来的数事先乘如sum
    
                sum = (sum * a) % mode;
    
     
    
            b /= 2;
    
            a = (a * a) % mode;// 不断的两两合并再取模,减小a和b的规模
    
        }
    
        return sum;
    
    }

    &是AND运算符,是一种逻辑运算符。

    其运算规则如下:

    1&1=1;真&&真=真。

    1&0=0;真&&假=假。

    0&1=0;假&&真=假。

    0&0=0;假&&假=假。

    long long Mode(long long a, long long b, long long mode)
    
    {
    
        long long sum = 1;
    
        while (b) {
    
            if (b & 1) {
    
                sum = (sum * a) % mode;
    
                b--;
    
            }
    
            b /= 2;
    
            a = a * a % mode;
    
        }
    
        return sum;
    
    }
  • 相关阅读:
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
  • 原文地址:https://www.cnblogs.com/ylrwj/p/10969797.html
Copyright © 2011-2022 走看看