快速幂算法

    xiaoxiao2025-01-13  16

    一般用于求解a^b%c时,可以大大降低时间复杂度

     

            快速幂算法——可迅速求出a^b。其主要理论依据如下:

            1,当b为偶数时,a^b可以转为a^2的b/2次方。

            2,当b为奇数时,a^b可以转为a^2的b/2次方,再乘以a。

     

    模板一:

    int pow4(int a,int b) { int r=1,base=a; while(b!=0) { if(b&1) r*=base; base*=base; b>>=1; //二进制右移 } return r; }

     

    模板二:

    int cifang(int a, int b) { int s = 1; while (b > 0) { if (b % 2 == 1) {//b=b>>1保证了在最后一步肯定会执行该if判断 s = s * a; } a=a*a; b/=2; } return s; }

     

    模板一效率高啊!!!

    最新回复(0)