相信很多朋友和我一样在ACM竞赛中遇到Time Limite问题,今天给大家介绍一种快速幂的算法,没有c++ 的power函数,但是更加的高效简洁。
下面注释掉的部分为快速幂运算的取模样式
//#include <bits/stdc++.h>
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
int Next[10000];
// #define mod 10e7
double quick_power(double base, unsigned int n)
{
double res = 1.0;
while (n > 0)
{
if (n & 1)
res *= base;// res = (res * base) % mod;
base *= base;//base = (base * base) % mod;
n >>= 1;
}
return res;
}
int main()
{
int a, b;
while (cin >> a >> b)
{
cout << quick_power(a, b) << endl;
}
return 0;
}