求助
  • 板块灌水区
  • 楼主Novicelpx
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/10/8 22:58
  • 上次更新2024/10/9 14:33:58
查看原帖
求助
189912
Novicelpx楼主2024/10/8 22:58

题目是求a^b mod m

AC代码:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    long long a,b,m,ans=1;
    scanf("%lld%lld%lld",&a,&b,&m);
    while(b>0){
        if(b%2)ans=(ans*a)%m;
        a=(a*a)%m;
        b/=2;
    }
    printf("%lld\n",ans);
    return 0;
}

WA代码:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    long long a,b,m,ans=1;
    scanf("%lld%lld%lld",&a,&b,&m);
    a=a%m;
    while(b>0){
        if(b%2)ans=(ans*a)%m;
        a=(a*a)%m;
        b/=2;
    }
    printf("%lld\n",ans);
    return 0;
}

为什么加上一个a=a%m就错了呢,我不懂,求助大家qwq

2024/10/8 22:58
加载中...