问题标题: 酷町堂:3343 快速幂

0
0
已解决
熊潇然
熊潇然
初级启示者
初级启示者

题目链接: 酷町堂:3343

3343   快速幂

经验值:1200 时间限制:1000毫秒 内存限制:128MB

题目描述 Deion

输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。

输入描述 Input Deion

三个整数b,p,k。

输出描述 Output Deion

输出“b^p mod k=s”

s为运算结果

样例输入 Sample Input

2 10 9

样例输出 Sample Output

2^10 mod 9=7

 

WA 10分:

#include<bits/stdc++.h>
using namespace std;
long long b,p,k;
long long f(long long a,long long b){
    if(b==0) return 1;
    long long t=1;
    while(b){
        if(b&1) t*=a;
        b>>=1;
        a*=a;
    }
    return t;
}
int main(){
    cin>>b>>p>>k;
    printf("%d^%d mod %d=%d",b,p,k,f(b,p)%k);
    return 0;
}

求大佬指点


0
已采纳
李熙尧
李熙尧
新手光能
新手光能

快速幂的过程中就要取模了

0
刘瑾瑜
刘瑾瑜
新手天翼
新手天翼

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0
0
张世贤
张世贤
中级守护
中级守护

如果按你那么写的话,还没模就已经溢出了,自然不对

我要回答