HDOJ---1061 Rightmost Digit[简单数学题]
2012-08-18 01:36
267 查看
Rightmost Digit
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 19050 Accepted Submission(s): 7329
[align=left]Problem Description[/align]
Given a positive integer N, you should output the most right digit of N^N.
[align=left]Input[/align]
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).
[align=left]Output[/align]
For each test case, you should output the rightmost digit of N^N.
[align=left]Sample Input[/align]
2 3 4
[align=left]Sample Output[/align]
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.
[align=left]Author[/align]
Ignatius.L
code:
#include<iostream> using namespace std; int table[10][10]={ 0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1,1,1, 2,4,8,6,2,4,8,6,2,4, 3,9,7,1,3,9,7,1,3,9, 4,6,4,6,4,6,4,6,4,6, 5,5,5,5,5,5,5,5,5,5, 6,6,6,6,6,6,6,6,6,6, 7,9,3,1,7,9,3,1,7,9, 8,4,2,6,8,4,2,6,8,4, 9,1,9,1,9,1,9,1,9,1 }; int cnt[10]={10,10,4,4,2,10,10,4,4,2}; int main() { int t; int n; scanf("%d",&t); while(t--) { scanf("%d",&n); int temp=n; temp%=10; if(!temp) { printf("0\n"); continue; } printf("%d\n",table[temp][(n-1)%cnt[temp]]); } return 0; }
相关文章推荐
- HDOJ-----1060简单数学题
- hdoj--1018--Big Number(简单数学)
- HDOJ, 杭电1108, 最小公倍数题目,简单的数学题。。。。
- hdoj--5621--KK's Point(简单数学)
- HDOJ 1339 A Simple Task(简单数学题,暴力)
- HDOJ——简单数学题
- hdoj1108简单题、数学题
- HDOJ 1339 A Simple Task(简单数学题,暴力)
- hdoj--5621--KK's Point(简单数学)
- hdoj--1018--Big Number(简单数学)
- HDOJ 1339 A Simple Task(简单数学题,暴力)
- HDOJ--ACM-Steps--2.1.3--Cake(GCD,简单数学)
- hdoj 1071 The area 【简单数学题】
- HDOJ题目4705 Y(简单树形DP+数学)
- HDOJ 2114 求和公式套用 简单数学题
- hdoj1099 Lottery(简单的数学问题变相考察最小公倍数)
- hdoj 偶数求和 2015 (简单数学题)
- hdoj1019简单数学题
- hdoj the Sum of Cube 5053 (简单数学)
- 数论一(hdoj 简单数学题、推理题)