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

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 15:56:28
ACM rightmost digit 求简单思路求简单思路
xk@RI!] 2_8!LEG7UY+"&cjYqI.+^|=7wpv{㮭jkn[W? t~ԩ.9Qͮ9؏vl-:ydǟ3I9{?Q={5W.t`G% 9Fap9xgR0 JTsT1ll 4u) >&&2g9ŀ,T1/hlA׏}^Ɠ*_xuJ K{ʍzWBQ-Tn;P$էƪ륥lwרв$nKGUָּ!-^%ۀo$l!56aqm6ImS`+L(R䇲CTq((hDT, %ůOtׇfTFmBssg1śi8F{r .>B5yzonNXI

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");
}
}
}
很雷人吧,不过也很简单!