由于n比较大,可以用到二分优化,我在算法的书上看到过,后来很多oj都有这样的水题了,只能说数论这东东,看过了就都是水题,没看过真心难想
代码如下:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
int modexp(int a,long long b,int n)//a^b%n,就是这个,可以看到是用的二分优化滴
{
int t=1;
a %=n;
while(b>0)
{
if(b%2==1) t =(t*a)%n;
a=(a*a)%n;
b /=2;
}
return t;
}
int main()
{
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
long long n;
int ans,i,ncase;
cin>>ncase;
while(ncase--)
{
cin>>n;
ans=n%10;
ans=modexp(ans,n,10);
cout<<ans<<endl;
}
return 0;
}