HDOJ 1061 Rightmost Digit
1 // HDOJ 1061
2 // @author: bos
3 // @date: 2012.2.6
4 #include <stdio.h>
5 int main()
6 {
7 int t, dig;
8 int num;
9 scanf("%d", &t);
10 while(t--)
11 {
12 int result[10]={0}; //result存储循环的数字
13 int use[10]={0}; //确定循环中的数字
14 scanf("%d", &num);
15 dig= num% 10; //dig存储数字最后一位
16 int i= 0;
17 while (use[dig]== 0)
18 {
19 use[dig]= 1;
20 result[i++]= dig;
21 dig= (dig* (num% 10))% 10;
22 }
23 //此时的i,表示循环数字的个数
24 //此时dig存储的是循环数里的第一个,因为use[0]==1,所以跳出了while循环
25
26 printf("%d\n", result[(num-1)% i]);
27 }
28 return 0;
29
30 }
2012-02-06 16:23:20