Advertisement

信息学奥赛一本通 1326:分治算法例7.5取余运算(mod)

阅读量:

1326:【例7.5】 取余运算(mod)

时间约束设定为1000毫秒,内存使用上限为65536千字节。

【题目描述】

给定长整型数值b、p与k,计算b的p次方对k取模的结果。其中,b、p以及k均为长整型变量。

【输入】

输入参数b、p以及k的数值。

【输出】

计算b的p次方对k取模的结果。

【输入样例】

复制代码
    2 10 9

【输出样例】

复制代码
    2^10 mod 9=7

解析:快速幂算法的实现方式中,递归方法是一种常见选择,具体实现可参考以下代码:

复制代码
 #include <bits/stdc++.h>

    
 using namespace std;
    
 long long f(int x,int y,int z){
    
     if (y==0) return 1;
    
     long long p=f(x,y/2,z);
    
     if (y%2==1){
    
     return p*p%z*x%z;
    
     }else{
    
     return p*p%z;
    
     }
    
 }
    
 int main() {
    
     long long b,p,k

全部评论 (0)

还没有任何评论哟~