Rightmost Digit
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 40200 Accepted Submission(s):
15181
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).
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
Sample Output
7
6
Hint
In the first case, 3 * 3 * 3 = 27, so the rightmost digit is 7.
In the second case, 4 * 4 * 4 * 4 = 256, so the rightmost digit is 6.
Author
Ignatius.L
Recommend
一道有规律的题,可以先打表看规律。
题意:输入N,求N^N的个位数字。
附上代码:
1 #include <iostream> 2 using namespace std; 3 __int64 a[5]; 4 void xx(int t) //通过打表找规律,发现N^N的个位数字4个一循环,而且只需要保存个位数 5 { 6 __int64 i,s=1; 7 t%=10; 8 for(i=1; i<=4; i++) 9 { 10 s*=t; 11 a[i]=s%10; 12 } 13 } 14 int main() 15 { 16 int n,s,t; 17 cin>>n; 18 while(n--) 19 { 20 cin>>t; 21 xx(t); 22 s=t%4; 23 if(s==0) 24 cout<<a[4]<<endl; 25 else 26 cout<<a[s]<<endl; 27 } 28 return 0; 29 }