问题 B: Rightmost Digit
题目描述
Given a positive integer N, you should output the most right digit of N^N.
输入
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).
输出
For each test case, you should output the rightmost digit of N^N.
样例输入
234
样例输出
76
#include <stdio.h>
int main(){
int n,m,t,s,i,c,k;
int a[40]={0,1,1,1,1,2,4,8,6,3,9,7,1,4,6,4,6,5,5,5,5,6,6,6,6,7,9,3,1,8,4,2,6,9,1,9,1};
scanf("%d",&s);
for(i=0;i<s;i++){
scanf("%d",&n);
if(n%10==0){
printf("0\n");
continue;
}
else{
if(n>10){
k = n;
n = n%10;
m = n%9;
t = k%4;
}
else{
m = n%9;
t = n%4;
}
}
if(m==0 && t==0){
m = 9;
t = 4;
}
else if(m==0 && t!=0){
m = 9;
}
else if(m!=0 && t==0){
t = 4;
}
printf("%d\n",a[(m-1)*4+t]);
}
return 0;
}