A hard puzzle
7 66 8 800
9 6
#include<cstdio>
int mod(int a,int b,int k){
int ans=1;
a=a%k;
while(b>0){
if(b%2==1) ans=(ans*a)%k;
b/=2;
a=(a*a)%k;
}
return ans;
}
int main(){
int a,b;
while(scanf("%d%d",&a,&b)==2)
printf("%d\n",mod(a,b,10));
return 0;
}
这是直接的求法。看别人的题解,竟然还有一个规律:#include<cstdio>
int div[10]={1,1,4,4,2,1,1,4,4,2};
int f[10][4]={{0},{1},{6,2,4,8},{1,3,9,7},{6,4},{5},{6},{1,7,9,3},{6,8,4,2},{1,9}};
int main(){
int a,b;
while(scanf("%d%d",&a,&b)==2)
printf("%d\n",f[a%10][b%div[a%10]]);
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
HDU 1097.A hard puzzle【快速幂或规律】【8月12】
原文:http://blog.csdn.net/a995549572/article/details/47450627