这道题其实挺简单的,因为只看最后一位,所以就讨论最后一位的情况就可以了。而最后一位显然是有周期性的。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
using namespace std;
int main()
{
int a,b,mode[12];
while(scanf("%d%d",&a,&b)!=EOF)
{
memset(mode,0,sizeof(mode));
a=a%10;//这里要注意
mode[1]=a;
int cnt=1,t=a;
while(true)
{
t=t*a%10;
if(t==a)
break;
cnt++;
mode[cnt]=t;
}
mode[0]=mode[cnt];
printf("%d\n",mode[b%cnt]);
}
return 0;
}