CC++ & Algorithm
算法可视化
入门执行逻辑

快速幂:2 的 10 次方

把指数 10 转成二进制 1010:2^10 = 2^8 × 2^2,只需 4 次循环而不是 10 次乘法。

main.cpp第 3 行
1// 快速幂: 2^10, 指数 10 = 二进制 1010
2int fastPow(int a, int b) {
3 int res = 1;
4 while (b > 0) {
5 if (b % 2 == 1) res = res * a; // 当前位是 1
6 a = a * a; // 底数平方
7 b = b / 2; // 指数右移
8 }
9 return res;
10}
变量表5 个变量
a2
b10
b_二进制1010
res1
当前位0
1/18

计算 2^10:res = 1,底数 a = 2,指数 b = 10(二进制 1010)

1 / 18