1. 程式人生 > >防止資料溢位,快速冪取模!!!!

防止資料溢位,快速冪取模!!!!

#include<stdio.h>
int main()
{
    int a,b;



    while(scanf("%d%d",&a,&b)==2)
    {//求的是最後三位的數
        if(a==0&&b==0)
            return 0;
            int ans=1;
        a=a%1000;
    while(b>0)
    {
        if(b%2==1)
            ans=(ans*a)%1000;//b是奇數,就把第一個數存起來
        b=b/2;
        a=(a*a)%1000;//兩個數取餘後,記下來!b的次數會相應的減半
    }
    printf("%d\n",ans);
    }
    return 0;
}//公式是A^BmodC=(AmodC)^BmodC

 (A*A....A)(共B個)^C=(AmodC)*(AmodC)……(共B個)modC