zoukankan      html  css  js  c++  java
  • 快速幂和快速幂 取模

    这一题  必须用快速幂 去解决 不然 会超时 .  o(N)的算法 已经无法拯救人类 ,  现在最小也要 O (log N)的算法出手 才有人看...

    1 /*求(a^b)%mod*/

     1 /*求(a^b)%mod*/
     2 #include<stdio.h>
     3 #include<string.h>
     4 #include<math.h>
     5 #include<iostream>
     6 #include<algorithm>
     7 #include<queue>
     8 #include<vector>
     9 #include<set>
    10 #include<stack>
    11 #include<string>
    12 #include<sstream>
    13 #include<map>
    14 #include<cctype>
    15 #include<limits.h>
    16 using namespace std;
    17 __int64 a,b,mod;
    18 __int64 speed_pow(__int64 x,__int64 n)
    19 {
    20     __int64 res=1;
    21     while(n>0)
    22     {
    23         if(n&1)
    24             res=(res*x)%mod;                   //去掉 mod 就是 普通的求 快速幂 . 
    25         x=(x*x)%mod;
    26         n>>=1;
    27     }
    28     return res;
    29 }
    30 int main()
    31 {
    32     while(scanf("%I64d%I64d%I64d",&a,&b,&mod)!=EOF)
    33     {
    34         __int64 result=speed_pow(a,b);
    35         printf("%I64d
    ",result);
    36     }
    37     return 0;
    38 }
  • 相关阅读:
    Bacula Plugins
    getopt、getopt_long命令参数
    Notepad++ 快捷键
    make命令
    Linux目录结构
    rhel安装输入法
    libtool编译
    install和cp
    dlopen动态链接库操作
    结构体赋值
  • 原文地址:https://www.cnblogs.com/A-FM/p/5549383.html
Copyright © 2011-2022 走看看