http://acm.hdu.edu.cn/showproblem.php?pid=1061
看最后一位数字的次方
1的所有次方都是1
0的所有次方都是0
5的所有次方都是5
6的所有次方都是6
2(四个一循环)
3(四个一循环)
7(四个一循环)
8(四
View Code
1 #include<stdio.h> 2 int print(int n) 3 { 4 int i,n0=n%10,j,ans; 5 if(n0==0||n0==1||n0==5||n0==6)//直接输出 6 return n0; 7 if(n0==2||n0==3||n0==7||n0==8) 8 { 9 ans=1; 10 i=n%4+4; 11 for(j=0;j<i;j++)//这边没等号 …… 12 { 13 ans=ans*n0; 14 ans%=10; 15 } 16 return ans; 17 } 18 if(n0==4||n0==9) 19 { 20 ans=n0; 21 i=n%2+2; 22 for(j=0;j<=i;j++)//这边有等号 …… 23 { 24 ans=ans*n0; 25 ans%=10; 26 } 27 return ans; 28 } 29 } 30 int main() 31 { 32 int t,n; 33 scanf("%d",&t); 34 while(t--) 35 { 36 scanf("%d",&n); 37 printf("%d\n",print(n)); 38 } 39 return 0; 40 }
1 #include<stdio.h> 2 int print(int n) 3 { 4 int i,n0=n%10,j,ans; 5 if(n0==0||n0==1||n0==5||n0==6)//直接输出 6 return n0; 7 if(n0==2||n0==3||n0==7||n0==8) 8 { 9 ans=1; 10 i=n%4+4; 11 for(j=0;j<i;j++)//这边没等号 …… 12 { 13 ans=ans*n0; 14 ans%=10; 15 } 16 return ans; 17 } 18 if(n0==4||n0==9) 19 { 20 ans=n0; 21 i=n%2+2; 22 for(j=0;j<=i;j++)//这边有等号 …… 23 { 24 ans=ans*n0; 25 ans%=10; 26 } 27 return ans; 28 } 29 } 30 int main() 31 { 32 int t,n; 33 scanf("%d",&t); 34 while(t--) 35 { 36 scanf("%d",&n); 37 printf("%d\n",print(n)); 38 } 39 return 0; 40 }
个一循环)
4^1=4 4^2=6(两个一循环)
9^1=9 9^2=1(两个一循环)
还有一些不理解