问题标题: 酷町堂:3367

0
0
已解决
曹博扬
曹博扬
初级天翼
初级天翼
#include<iostream>
#include<cstdio>
using namespace std;
int b,p,k,a;
int f(int p)
{
    if(p==0) return 1;
    int tmp=f(p/2)%k;
    tmp=(tmp*tmp)%k;
    if(p%2==1)tmp=(tmp*(b%k))%k;
    return tmp;
}
int main()
{
    cin>>b>>p>>k;
    int tmpb=b;
    b%=k;
    printf("%d^%d mod %d=%d/n",tmpb,p,k,f,(p));
    return 0;
}

求大神指点,哪里错了???


0
已采纳
吴君昊
吴君昊
新手光能
新手光能

第一,k是长整型,long long ,你的是int,要看清题!

第二,你的printf好像有点问题下划线这里,求b^p,不能直接^吧

第三,我建议你的p改为bool。

我不是大神,我也没多大把握,祝你AC

我要回答