hdu1097 - A hard puzzle

深藏阁楼爱情的钟 2022-07-13 07:59 187阅读 0赞

地址

http://acm.hdu.edu.cn/showproblem.php?pid=1097

定位

  • 查表
  • 找规律

分析

  • 由乘法规则,两个乘数的积的个位数字即为乘数个位数字之积的个位数。求ab的个位数字,在每次乘法运算之前,取乘数的个位数字相乘;乘法运算之后,取积的个位数存储或输出。
  • 结果的规律性还是很明显的,循环周期为4,查表即可。a%10求底数的个位数字,b%4用于查表。

代码

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int table[10][4] = {
  4. {
  5. 0,0,0,0},
  6. {
  7. 1,1,1,1},
  8. {
  9. 2,4,8,6},
  10. {
  11. 3,9,7,1},
  12. {
  13. 4,6,4,6},
  14. {
  15. 5,5,5,5},
  16. {
  17. 6,6,6,6},
  18. {
  19. 7,9,3,1},
  20. {
  21. 8,4,2,6},
  22. {
  23. 9,1,9,1}};
  24. int main()
  25. {
  26. int a,b,aa,bb;
  27. while(scanf("%d*c",&a) != EOF)
  28. {
  29. scanf("%d*c",&b);
  30. aa = a % 10;
  31. bb = (b - 1) % 4;
  32. printf("%d\n",table[aa][bb]);
  33. }
  34. return 0;
  35. }

性能


















Exe.Time Exe.Memory Code Length Language
0MS 1408K 444B c

总结

取模取余进行数位分离

假设a为一个三位整数,a%10取a的个位数字,a/100取a的百位数字,(a%100)/10取a的十位数字。

Thanks everyone!

发表评论

表情:
评论列表 (有 0 条评论,187人围观)

还没有评论,来说两句吧...

相关阅读