题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1061
此题的n很大,于是只能找规律,用数学方法解决。。
(N^N) mod 10 = (N mod 10) ^ N mod 10;再观察每个数字的x次方的个位数字,发现它们的最小公倍数是4,
于是只需乘(N-1) % 4 + 1 次,问题解决。。。
#include <stdio.h>
int main(void)
{
int n, i, a, b, t, mul;
while (scanf("%d", &t) != EOF) {
while (t--) {
scanf("%d", &n);
a = n % 10;
b = (n - 1) % 4 + 1;
mul = 1;
for (i = 1; i <= b; i++) {
mul *= a;
}
printf("%d\n", mul % 10);
}
}
return 0;
}