hdu1420快速幂

来源:互联网 发布:软件系统招标文件范本 编辑:程序博客网 时间:2024/06/06 04:51

这就是一个简单快速幂,但是还是哇了几发,主要是后来才看那个数值范围。mol为10的6次方,然后如果极限条件的话就是两个10的6次方-1的数相乘,然后就会爆int。所以还是开个long long吧

#include<cstdio>#include<cstring>#include<algorithm>using namespace std;void work(long long  a , long long  n ,long long m){    long long  res = 1;    while(n){        if(n & 1) res = (res * a) % m;        a = ((a % m)*(a % m)) % m;        n >>= 1;    }    printf("%d\n",res);}int main(){    long long t;    scanf("%I64d",&t);    while(t--){        int a , n , m;        scanf("%d%d%d",&a , &n , &m);        work(a , n ,m);    }    return 0;}
0 0
原创粉丝点击