1、枚举法
枚举法就是1 5 6 结果不变,再计算其他数的循环次数枚举
2、循环节法
通过本体可以熟练使用循环节,首先定义循环节loop,其次依次将循环节赋给m[i]数组,记录循环个数loop,将最后一个循环数赋给m[0](对循环节取模为零时),最后通过输出m[x%loop]即可取得最后值!
#include<stdio.h>
int main()
{
long long int a,b,loop; //循环节为loop
while(~scanf("%lld%lld",&a,&b))
{
a%=10;
int n=a,p=-1,m[10005]={0,a};
if(a==0)
{
printf("0\n");
continue;
}
if(b==0)
{
printf("1\n");
continue;
}
for(int i=2; ;i++)
{
n*=a; n%=10; //运算
m[i]=n; //将循环节赋给m[i]数组
loop=i ; //循环节为loop
if(n==a)
break; //确定循环节
}
--loop; //循环节为i
m[0]=m[loop]; //当b%循环节=0时,
printf("%d\n",m[b%loop]);
}
}