这是一道可以说是快速幂的入门题,本来是难不倒我的。可能是由于期末这段时间复习的原因,脑子不清醒总是不能A。最后找了模板才过的,不过这也让我更加深入的了解了快速幂的原理。其他就不说了直接上题
----------------------------------------------------------------------------------------------------------------------------------------------------------
计算A的B次幂对c取模(A^BmodC)并且1<=A,B,C<=32768.
输入三个整数A,B,C,输入文件每一行依次三个整数a,b,c用空格隔开
每行输出一个运算结果4
Sample:
Input:
3 4 5
10 10 100
45 67 89
1 1 1
Output:
1
0
45
0
----------------------------------------------------------------------------------------------------------------------------------------------------------
代码如下:
#include <stdio.h>
int main()
{
int a,b,c;
while(~scanf("%d%d%d",&a,&b,&c))
{
int d[100],r=a,s=1,i=0;
while(b)
{
d[i++]=b%2;
b>>=1;
}
for(int k=i-1;k>=0;k--)
{
s=(s*s)%c;
if(d[k]==1)
s=(s*a)%c;
}
printf("%d\n",s);
}
return 0;
}