这道题目可以手工打表,也可以机器打表,千万不能暴力解,会TLE。
1 #include <stdio.h> 2 3 #define MAXNUM 1000000001 4 5 int buf[10][10]; 6 7 int main() { 8 int case_n, n; 9 int i, j; 10 11 for (i=0; i<10; ++i) { 12 buf[i][0] = 1; 13 buf[i][1] = i; 14 for (j=2; j<10; ++j) { 15 buf[i][j] = buf[i][j-1]*i%10; 16 if (buf[i][j] == buf[i][1]) 17 break; 18 buf[i][0]++; 19 } 20 } 21 /* 22 for (i=0; i<10; ++i) { 23 printf("%d:", i); 24 for (j=1; j<=buf[i][0]; ++j) 25 printf(" %d", buf[i][j]); 26 printf("\n"); 27 } 28 */ 29 scanf("%d", &case_n); 30 31 while (case_n--) { 32 scanf("%d", &n); 33 i = n % 10; 34 j = n % buf[i][0]; 35 if (!j) 36 j = buf[i][0]; 37 printf("%d\n", buf[i][j]); 38 } 39 40 return 0; 41 }