ACM rightmost digit 求简单思路求简单思路

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 02:02:26

ACM rightmost digit 求简单思路求简单思路
ACM rightmost digit 求简单思路
求简单思路

ACM rightmost digit 求简单思路求简单思路
看最后一位数字的次方
1的所有次方都是1
0的所有次方都是0
5的所有次方都是5
6的所有次方都是6
2^1=2 2^2=4 2^3=8 2^4=6(四个一循环)
3^1=3 3^2=9 3^3=7 3^4=1(四个一循环)
7^1=7 7^2=9 7^3=3 7^4=1(四个一循环)
4^1=4 4^2=6(两个一循环)
8^1=8 8^2=4(两个一循环)
9^1=9 9^2=1(两个一循环)
故程序如下:
#include
main()
{
int n,cas,m;
scanf("%d",&cas);
while(cas--)
{
scanf("%d",&n);
m=n%10;
if(m==0||m==1||m==5||m==6) printf("%d\n",m);
if(m==2)
{
if (n%4==1) printf("2\n");
if (n%4==2) printf("4\n");
if (n%4==3) printf("8\n");
if (n%4==0) printf("6\n");
}
if(m==3)
{
if (n%4==1) printf("3\n");
if (n%4==2) printf("9\n");
if (n%4==3) printf("7\n");
if (n%4==0) printf("1\n");
}
if(m==7)
{
if (n%4==1) printf("7\n");
if (n%4==2) printf("9\n");
if (n%4==3) printf("3\n");
if (n%4==0) printf("1\n");
}
if(m==8)
{
if (n%4==1) printf("8\n");
if (n%4==2) printf("4\n");
if (n%4==3) printf("2\n");
if (n%4==0) printf("6\n");
}
if (m==4)
{
if (n%2==1) printf("4\n");
if (n%2==0) printf("6\n");
}
if (m==9)
{
if (n%2==1) printf("9\n");
if (n%2==0) printf("1\n");
}
}
}
很雷人吧,不过也很简单!