快速幂
快速幂算法
幂运算当指数较大时,需要进行很多次乘法操作,时间复杂度较高
使用快速幂算法,可大大降低时间复杂度
基本思路
底数为x,指数为n,定义变量res(初始值为1)保存结果,对指数n进行讨论
- 若n为偶数,那么x^n == (x^2)^(n/2),将x自身平方,n减半
- 若n为奇数,则将当前x的值并入res(即res *= x),同时n自减1
最终n自减至0,此时res已保存正确的x^n的值
代码实现
python版
1 | |
C++版
1 | |
幂运算当指数较大时,需要进行很多次乘法操作,时间复杂度较高
使用快速幂算法,可大大降低时间复杂度
底数为x,指数为n,定义变量res(初始值为1)保存结果,对指数n进行讨论
x^n的值python版
1 | |
C++版
1 | |