int quick(int a,int b,int c)
{
int ans=1; //記錄結果
a=a%c; //預處理,使得a處於c的數據範圍之下
while(b!=0)
{
if(b&1) ans=(ans*a)%c; //如果b的二進制位不是0,那麼我們的結果是要參與運算的
b>>=1; //二進制的移位操作,相當於每次除以2,用二進制看,就是我們不斷的遍歷b的二進制位
a=(a*a)%c; //不斷的加倍
}
return ans;
}
int quick(int a,int b,int c)
{
int ans=1; //記錄結果
a=a%c; //預處理,使得a處於c的數據範圍之下
while(b!=0)
{
if(b&1) ans=(ans*a)%c; //如果b的二進制位不是0,那麼我們的結果是要參與運算的
b>>=1; //二進制的移位操作,相當於每次除以2,用二進制看,就是我們不斷的遍歷b的二進制位
a=(a*a)%c; //不斷的加倍
}
return ans;
}