20 lines
603 B
C++
20 lines
603 B
C++
#include <bits/stdc++.h>
|
||
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;
|
||
} |