oj快速幂取余问题,最后结果再次取余为什么判对

快速幂问题,求a的b次方与p的模:
请问为什么return b;是WA,return b%z就对了,加不加%z不都是一样的吗?

#include<stdio.h>
long long mi(long long x,long long y,long long z);
long long mi(long long x,long long y,long long z)
{
    long long a=x;
    long long b=1;
    a=a%z;
    while(y!=0)
    {if(y%2==1)
        b=(b%z*a%z)%z;
    a=(a*a)%z;
    y=y/2;}
   return b%z
}
int main()
{
   long long o,p,q;
   while(scanf("%lld %lld %lld",&o,&p,&q)!=EOF)
   {printf("%lld\n",mi(o,p,q));}
     return 0;
}

(小萌新求真相)

1个回答

Nijuedese

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐