要理解base*=base这一步:因为 base*base==base2,下一步再乘,就是base2*base2==base4,然后同理 base4*base4=base8,由此可以做到base-->base2-->base4-->base8-->base16-->base32.......指数正是 2^i ,再看上面的例子,a¹¹= a1*a2*a8,这三项就可以完美解决了,快速幂就是这样。
常规求幂
1 2 3 4 5 |
|
快速求幂(一般)
1 2 3 4 5 6 7 8 9 |
|
快速求幂 (递归)
1 2 3 4 5 |
|
快速求幂(位运算)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
快速求幂(位运算,更简洁)
1 2 3 4 5 6 7 8 9 |
|