zoukankan      html  css  js  c++  java
  • HDU-1061-Rightmost Digit(快速幂)

    • 快速幂(本代码中的^表示次幂不是异或)
      Accepted 1061 0MS 1368K 679 B G++
      #include "bits/stdc++.h"
      using namespace std;
      const int MOD = 10;
      int quick_pow(int n, int m) {
          // 因为1乘任何数都是它本身,所以初始化ans为1 
          int ans = 1;
          while (m != 0) {
              // 如果m是奇数,我们可以视为求ans * n * n ^ (m -1); 
              if (m & 1) {
                  // 所以将n乘给ans,使我们要求的结果变成ans * n ^ (m - 1) 
                  ans = ans * n % MOD; 
              }
              // 如果m偶数我们要求ans * n ^ m, 而经过上面处理过之后m就算是奇数也变成了偶数,因为减1了
              // 所以n平方, m除2,变成(n ^ 2) ^ (m >> 1); 
              n = n * n % MOD;
              m >>= 1;
          }
          return ans;
      }
      int main() {
          int t, n;
          scanf("%d", &t);
          while (t--) {
              scanf("%d", &n);
              printf("%d
      ", quick_pow(n % 10, n));
          }
          return 0;
      }
  • 相关阅读:
    靶机练习
    靶机练习
    靶机练习
    CTF-攻防世界-Web_php_unserialize(PHP反序列化)
    漏洞复现
    靶机练习
    靶机练习
    靶机练习
    糗事集合
    慕课前端入门-JS事件
  • 原文地址:https://www.cnblogs.com/Angel-Demon/p/9681690.html
Copyright © 2011-2022 走看看