快速幂hdu1420

img

img

在洛谷上一个类似的快速幂题目相同的代码过了,但是在杭电这里总是输出超限,为什么

仅供参考,望采纳~

#include<stdio.h>
typedef long long int LL;
int main()
{
    LL t,a,b,c,res;
    scanf("%lld",&t);
    for(int i=0;i<t;i++)
    {
        scanf("%lld%lld%lld",&a,&b,&c);
        res=1;
        a%=c;
        while(b>0)
        {
            if(b&1)
            {
                res=a*res%c;
            }
            a=a*a%c;
            b>>=1;
        }
        printf("%lld\n",res);
    }
    return 0;
}

这是按照你的代码改正了一下,执行的结果

img

以下是个人写的

#include<stdio.h>
int main(void)
{
    int a,b,c;
    int n,i,j,res=1;
    scanf("%d",&n);
    int result[n];
    for(i=0;i<n;i++)
    {
        scanf("%d%d%d",&a,&b,&c);
        for(j=0;j<b;j++)
        {
            res*=a;
        }
        result[i]=res%c;
        res=1;
    }
    for(i=0;i<n;i++)
    {
        printf("%d\n",result[i]);
    }
    return 0;
}

img