hdu 1061 Rightmost Digit

也是明显会溢出的题目,考虑优化

考虑到一个数次方一直增加,最后一位会出现规律比如2就会2、4、8、6循环

再加上次数是N又简化些

代码貌似不是很简化,可以一个变量存储结果,最后输出(不过看着比较优美,懒得改了),其实比赛中很少去考虑这些小的优化的,平时可能会看看oj上显示自己程序代码多少B,空间多少,然后改程序少一个字母就挺兴奋的,比赛的时候主要就考虑整体的算法了,这就要靠平时养成一些好习惯啦

  题目传送门

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int n,num;
 5     int a[4][4]={{6,2,4,8},{1,3,9,7},{1,7,9,3},{6,8,4,2}};
 6     scanf("%d",&n);
 7     while(n--)
 8     {
 9         scanf("%d",&num);
10         switch(num%10)
11         {
12         case 0:printf("0\n");
13             break;
14         case 1:printf("1\n");
15             break;
16         case 2:printf("%d\n",a[0][num%4]); 
17             break;
18         case 3:printf("%d\n",a[1][num%4]);
19             break;
20         case 4:printf("6\n");
21             break;
22         case 5:printf("5\n");
23             break;
24         case 6:printf("6\n");
25             break;
26         case 7:printf("%d\n",a[2][num%4]);
27             break;
28         case 8:printf("%d\n",a[3][num%4]);
29             break;
30         case 9:printf("9\n");
31         }
32     }
33     return 0;
34 }

 

posted @ 2013-05-10 08:48  飞向梦  阅读(142)  评论(0编辑  收藏  举报