题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1061
对于这个题目最快的方法是找出规律
对于以尾数 0 1 5 6 结尾的数字来说,N^N一定是以 0 1 5 6 结尾的 因此输出结果是 N%10
以尾数2结尾 N^N一定是以 2 4 8 6 结尾,因为此数一定是偶数,所以排除奇次幂结尾的尾数 2 8 ;
当 N%4==2时 --------4 N%4==0 -----------6
以尾数3结尾 N^N一定是以 3 9 7 1 结尾,因为此数一定是奇数,所以排除偶次幂结尾的尾数 9 1 ;
当 N%4==1时 --------3 N%4==3-----------7
以尾数4结尾 N^N一定是以 4 6 结尾,因为此数一定是偶数,所以排除奇次幂结尾的尾数 4 ;
所以N^N的尾数一定是 6
以尾数7结尾 N^N一定是以 7 9 3 1结尾,因为此数一定是奇数,所以排除偶次幂结尾的尾数 9 1 ;
当 N%4==1时 --------7 N%4==3-----------3
以尾数8结尾 N^N一定是以 8 4 2 6 结尾,因为此数一定是偶数,所以排除奇次幂结尾的尾数 8 6 ;
当 N%4==2时 --------4 N%4==0 -----------6
以尾数9结尾 N^N一定是以 9 1结尾,因为此数一定是奇数,所以排除偶次幂结尾的尾数 1 ;
所以N^N的尾数一定是 9
include<iostream>
using namespace std;
int main()
{
int t,n,a;
cin>>t;
while(t--)
{
cin>>n;
if(n%10==0) {cout<<0<<endl;}
else if(n%10==1) {cout<<1<<endl;}
else if(n%10==4) {cout<<6<<endl;}
else if(n%10==5) {cout<<5<<endl;}
else if(n%10==6) {cout<<6<<endl;}
else if(n%10==9) {cout<<9<<endl;}
else if(n%10==2)
{
if(n%4==2) {cout<<4<<endl;}
else {cout<<6<<endl;}
}
else if(n%10==3)
{
if(n%4==1) {cout<<3<<endl;}
else {cout<<7<<endl;}
}
else if(n%10==7)
{
if(n%4==1) {cout<<7<<endl;}
else {cout<<3<<endl;}
}
else if(n%10==8)
{
if(n%4==2) {cout<<4<<endl;}
else {cout<<6<<endl;}
}
}
return 0;
}