末位数字
发布时间: 2017年11月12日 20:19 最后更新: 2017年11月12日 20:20 时间限制: 1000ms 内存限制: 128M
给定一个整数n, 求n的n次方的十进制表示的末位数字。(1 <= n <= 1e9);
输入包括若干组测试数据, 以0结束, 0不需要处理。
输入的每一行包括一个整数n。
测试数据数量不大于1e6;
对于输入的每一个n, 在一行中输出一个整数, 表示所要求的末位数字。
3 0
源码
有点水。。顺序还可以改一改,少写几行代码,但我有点强迫症,等差数列的强迫症:(
1 #include <stdio.h> 2 int main(){ 3 int n; 4 int temp = 1; 5 // 0: 0 6 // 1: 1 7 // 2: 4 6 8 // 3: 3 7 9 // 4: 4 6 10 // 5: 5 11 // 6: 6 12 // 7: 7 3 13 // 8: 4 6 14 // 9: 1 15 while(scanf("%d",&n) != EOF){ 16 if(n == 0) 17 break; 18 temp = n % 10; 19 switch(temp){ 20 case 0: 21 printf("0 "); 22 break; 23 case 1: 24 printf("1 "); 25 break; 26 case 2: 27 switch(n % 4){ 28 case 0: 29 printf("6 "); 30 break; 31 case 2: 32 printf("4 "); 33 break; 34 } 35 break; 36 case 3: 37 switch(n % 4){ 38 case 1: 39 printf("3 "); 40 break; 41 case 3: 42 printf("7 "); 43 break; 44 } 45 break; 46 case 4: 47 printf("6 "); 48 break; 49 case 5: 50 printf("5 "); 51 break; 52 case 6: 53 printf("6 "); 54 break; 55 case 7: 56 switch(n % 4){ 57 case 1: 58 printf("7 "); 59 break; 60 case 3: 61 printf("3 "); 62 break; 63 } 64 break; 65 case 8: 66 switch(n % 4){ 67 case 0: 68 printf("6 "); 69 break; 70 case 2: 71 printf("4 "); 72 break; 73 } 74 break; 75 case 9: 76 printf("9 "); 77 break; 78 } 79 } 80 return 0; 81 }