zoukankan      html  css  js  c++  java
  • 1497 取余运算

    1497 取余运算

     

     时间限制: 1 s
     空间限制: 128000 KB
     题目等级 : 钻石 Diamond
     
     
    题目描述 Description

    输入b,p,k的值,编程计算bp mod k的值。其中的b,p,k*k为长整型数(2^31范围内)。

    输入描述 Input Description

    b p k 

    输出描述 Output Description

    输出b^p mod k=?

    =左右没有空格

    样例输入 Sample Input

    2  10  9

    样例输出 Sample Output

    2^10 mod 9=7

    数据范围及提示 Data Size & Hint
     

    分类标签 Tags 点此展开 

     

    快速幂的裸题,注意数据范围要开long long。That's it.

    风格1.

    #include<cstdio>
    #include<iostream>
    using namespace std;
    long long mod;
    long long quick_pow(long long b,long long a){
         if(!a) return 1;
         if(a&1) return(quick_pow(b,a-1)%mod*b)%mod;
         long long t=quick_pow(b,a/2)%mod;
         return (t*t)%mod;
    }
    int main(){
        long long b,p;
        cin>>b>>p>>mod;
        printf("%lld^%lld mod %lld=%lld",b,p,mod,quick_pow(b,p));
        return 0;
    }

     风格2.

    #include<cstdio>
    #include<iostream>
    #include<cmath>
    using namespace std;
    long long mod;
    long long quick_pow(long long x,long long n){ 
        if(n==0) return 1;
        else{
            while((n&1)==0){
                n>>=1;
                x=(x*x)%mod;
            }    
        }
        long long result=x;
        n>>=1;
        while(n!=0){
            x=(x*x)%mod;
            if((n&1)!=0){
                result=(result*x)%mod;
            }
            n>>=1;
        }
        return result;
    }
    int main(){
        long long b,p;
        cin>>b>>p>>mod;
        printf("%lld^%lld mod %lld=%lld",b,p,mod,quick_pow(b,p));
        return 0;
    }
  • 相关阅读:
    HTTP报文详解
    常用的HTTP协议
    URL详解
    一起切磋
    emacs使用指南
    SSH自动部署
    linux上应用随机启动
    让Maven正确处理javac警告
    最近的学习
    Java application 性能分析分享
  • 原文地址:https://www.cnblogs.com/shenben/p/5642863.html
Copyright © 2011-2022 走看看