快速幂模板(带注释)

    科技2025-05-29  8

    #include <bits/stdc++.h> using namespace std; /* 快速幂最佳优化模板 参数1:底数 参数2: 指数 */ long long fastPower(long long base, long long power) { long long result = 1; //结果 while(power > 0) //指数 ,如果指数不等于 0 继续执行 { if(power&1) //使用位运算判断奇偶可以缩短时间 { result = result * base %1000 ; // %1000 表示取最后三位数 } power >>= 1; //将二进制的 power向右平移一位,达到 %2 的目的,缩短时间 base = base*base %1000; } return result; } int main(int argc, char** argv) { clock_t t1,t2; t1 = clock(); cout << fastPower(2,1000000000) << endl; t2 = clock(); cout << "时间:" << double(t2-t1)/CLOCKS_PER_SEC; return 0; }
    Processed: 0.009, SQL: 8