Problem Description
Given a positive integer N, you should output the most right digit of N^N.
Input
The input contains several test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow. Each test case contains a single positive integer N(1<=N<=1,000,000,000).
Output
For each test case, you should output the rightmost digit of N^N.
Sample Input
2 3 4
#include<iostream> using namespace std; int main() { long long int n; int i; int T; cin>>T; int sum; while (T--) {cin>>n; int m=n; n=n%10; if(n==4)//4是偶数,所以只可能有偶数个4相乘。根据规律只有一个结果 6 cout<<6<<endl; if(n==0||n==1||n==5||n==6||n==9)//对于0 1 5 6而言不管几个数相乘,最后一位仍是其本身,对于 9 而言,9是奇数,只有奇数个数相乘,根据规律,结果只能是 9 cout<<n<<endl; //对于一个偶数,只可能有偶数个数相乘,同理对于一个奇数,只可能有奇数个数相乘 //以下四个数都是每隔四个一循环,通过对模4的差别用if语句判断 else { if(n==2) { if(m%4==2) cout<<4<<endl; else cout<<6<<endl; } if(n==8) { if(m%4==2) cout<<4<<endl; else cout<<6<<endl; } if(n==3) { if(m%4==3) cout<<7<<endl; else cout<<3<<endl; } if(n==7) { if(m%4==3) cout<<3<<endl; else cout<<7<<endl; } } } return 0; }