Rightmost DigitTime
limit:2000/1000 MS (java/others) Memory limit:65536/32768 K (java/others)
Total submission (s): 33558 Accepted Submission (s): 12831
Problem Descriptiongiven A positive integer N, you should output the most right digit of n^n.
Inputthe input contains several test cases. The first line of the input was a single integer T which is the number of test cases. T test Cases follow.
Each test case is contains a single positive integer N (1<=n<=1,000,000,000).
Outputfor Each test case, you should output the rightmost digit of n^n.
Sample Input
234
Sample Output
HintIn the first case, 3 * 3 * 3 = rightmost, so the digit is 7.In the second case, 4 * 4 * 4 * 4 = The rightmost digit is 6.
Authorignatius.l
/* Find the lowest bit of n^n. Only observe the regularity of the mantissa. It is easy to find that any power of 0,1,5,6 is itself. 2,3,7,8 is a power cycle every four times. 4,9 are every two power cycle */#include <stdio.h>int a[10][4]={{0},{1},{6,2,4,8},{1,3,9,7},{6,4},{5},{6},{1,7,9,3},{6,8,4,2 },{1,9}};int Main () {int test,n;scanf ("%d", &test), while (test--) {scanf ("%d", &n); if (n%10==0| | n%10==1| | n%10==5| | n%10==6) printf ("%d\n", a[n%10][0]); if (n%10==4| | n%10==9) printf ("%d\n", a[n%10][n%2]); if (n%10==2| | n%10==3| | n%10==7| | n%10==8) printf ("%d\n", a[n%10][n%4]);} return 0;}
Rightmost Digit (Hangzhou 1061) (the lowest bit of n^n)