#include using namespace std; const int p = 1e9 + 7; // 快速幂 int qmi(int a, int b) { int r = 1; // 初始化结果为1 a %= p; // 先取模防止溢出 while (b) { // 当指数不为0时循环 if (b & 1) // 如果当前二进制位是1 r = (1LL * r * a) % p; // 累乘当前基数 a = (1LL * a * a) % p; // 基数平方 b >>= 1; // 右移一位(相当于除以2) } return r; } int main() { // (10)2=1010 cout << qmi(2, 10) << endl; return 0; }