快速幂算法

就,用二进制位运算

 1 int fastPower(int base, int exponent) {
 2     int sum = 1;
 3     while (exponent != 0) {
 4         if ((exponent & 1) != 0) {
 5             sum *= base;
 6         }
 7         exponent = expnonent >> 1;  // 对指数进行移位
 8         base *= base;               // 让base的次幂以2的倍数增长
 9     }
10     return sum;
11 }

e&1是判断那个位上是不是1的,是的话就要把base乘到sum上,然后变变base

不是的话,就光变变base就行

为了自己,和那些爱你的人
原文地址:https://www.cnblogs.com/zhmlzhml/p/13870796.html