hdu 1061 Rightmost Digit

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).
 

 

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
We have carefully selected several similar problems for you:  1071 1170 1048 1032 1062 
 
一道有规律的题,可以先打表看规律。
 
题意:输入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 }

 

posted @ 2015-09-17 10:26  lucky_少哖  阅读(195)  评论(0编辑  收藏  举报