说实话,我也想不到我会连快速幂都忘掉。

不过毕竟退赛前也仅仅只是单纯的把代码记住了而已。

既然现在理解了就稍微记录一下吧。

int Power(int x, int k) {
      int res = 1;
      for ( ; k; k >>= 1) {
            (k & 1) && (res = res * res);
            x = x * x;
      }
      return res;
}

变量 x 维护的是一开始的基数的 2 ^ n 的数,所以当 k 的二进制中当前位为 1 就算入答案。

其实的确很简单,不知道为什么一年前怎么也想不明白。

 posted on 2020-12-02 14:37  Ameiyo  阅读(54)  评论(0编辑  收藏  举报