给定N 求N^N中 最后一个数字
直接暴力肯定不行 那就是找规律了。。。直接对每个数的最后一个数找规律
#include <cstdio>
#include <iostream>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <string.h>
#include <string>
#define eps 1e-8
#define op operator
#define MOD 10009
#define MAXN 100100
#define INF 0x7fffffff
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define FOV(i,a,b) for(int i=a;i>=b;i--)
#define REP(i,a,b) for(int i=a;i<b;i++)
#define REV(i,a,b) for(int i=a-1;i>=b;i--)
#define MEM(a,x) memset(a,x,sizeof a)
#define ll __int64
using namespace std;
int a[10][10];
void init()
{
a[0][0]=1; a[0][1]=0;
a[1][0]=1; a[1][1]=1;
a[2][0]=4; a[2][1]=2; a[2][2]=4; a[2][3]=8; a[2][4]=6;
a[3][0]=4; a[3][1]=3; a[3][2]=9; a[3][3]=7; a[3][4]=1;
a[4][0]=2; a[4][1]=4; a[4][2]=6;
a[5][0]=1; a[5][1]=5;
a[6][0]=1; a[6][1]=6;
a[7][0]=4; a[7][1]=7; a[7][2]=9; a[7][3]=3; a[7][4]=1;
a[8][0]=4; a[8][1]=8; a[8][2]=4; a[8][3]=2; a[8][4]=6;
a[9][0]=2; a[9][1]=9; a[9][2]=1;
}
int main()
{
//freopen("ceshi.txt","r",stdin);
init();
int tc;
scanf("%d",&tc);
while(tc--)
{
int n;
scanf("%d",&n);
int x=n%10;
int y=n%a[x][0];
if(y==0)
printf("%d\n",a[x][a[x][0]]);
else
printf("%d\n",a[x][y]);
}
return 0;
}