7/21 E 解题报告
这题不需要什么算法,对数学熟悉的就很容易想到。求N^N的最后一位,乘法的末位是末位相乘的末位。于是,末位变化是有规律的。直接枚举0-9的规律即可。比如7-9-3-1这样变化。
以下是代码(可直接AC):
#include <iostream>
using namespace std;
int main()
{
int t,dig,pos;
long long n;
int k[10][10]={{0},
{1},
{2,4,8,6},
{3,9,7,1},
{4,6},
{5},
{6},
{7,9,3,1},
{8,4,2,6},
{9,1}};
int l[]={1,1,4,4,2,1,1,4,4,2};
cin>>t;
while(t--)
{
cin>>n;
dig=n%10;
pos=n%l[dig]-1;
if(pos<0)
pos=l[dig]-1;
cout<<k[dig][pos]<<endl;
}
return 0;
}