快速幂算法的c++代码
时间: 2024-09-26 17:00:16 浏览: 41
快速幂算法是一种用于高效计算大整数乘方的技术,它通过将指数拆分为二进制表示并递归地应用底数和指数,避免了直接对大数做大量次幂运算。下面是一个简单的C++代码示例:
```cpp
#include <iostream>
using namespace std;
// 计算a^b mod m (模m下的快速幂)
int fastPow(int a, int b, int m) {
int result = 1; // 初始化结果为1
while (b > 0) {
if (b % 2 == 1) { // 如果b为奇数
result = (result * a) % m; // 更新结果
}
a = (a * a) % m; // 将a平方并取模
b /= 2; // 将b除以2
}
return result;
}
int main() {
int base = 5; // 底数
int exponent = 1000000; // 指数
int modulus = 1000000007; // 模数
cout << "5 ^ " << exponent << " mod 1000000007 = " << fastPow(base, exponent, modulus) << endl;
return 0;
}
```
在这个代码里,`fastPow`函数接收三个参数:底数、指数和模数,然后使用循环不断将指数减半并将结果与底数相乘,直到指数变为0。每次迭代都检查当前指数是否为奇数,如果是,则将结果与当前的底数相乘。
阅读全文