[热身题][hdoj_1061]Rightmost Digit 右值

来源:互联网 发布:centos7端口无法打开 编辑:程序博客网 时间:2024/05/16 14:31

// hdoj_1061 Rightmost Digit 右值// 0MS228K253 BGCC#include <stdio.h>int main(vodi){int i, ncase, m, n, t;scanf("%d", &ncase);while(ncase--){scanf("%ld", &n);t = n % 10;m = 1;for(i = 0; i <= (n-1)%4; i ++)  //此处可换为 i < n%4 + 4;可解决n%4 ==0的情况{m *= t;;}printf("%d\n", m%10);}return 0;}

/*末位数      相乘后的末位数1           12           4   8   6   23           9   7   1   34           6   45           56           67           9   3   1   78           4   2   6   89           1   9(由于x9是奇数,所以1不会出现)0           0由上面的分析可见,每个数相乘后最多有四个结果所以对一个数n,只需做其对4取余后余数次相乘即可但是会出现 n%4 == 0 的情况由于x5^x5的末位数是5,x9^x9的末位数是9所以将n%4转换为(n-1)%4*/


原创粉丝点击