快速幂算法

就,用二进制位运算

 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就行

posted @ 2020-10-24 19:50  安之若醇  阅读(117)  评论(0)    收藏  举报
Live2D服务支持