首页 > 其他 > 详细

NYOJ 473 A^B Problem

时间:2015-07-26 18:45:25      阅读:253      评论:0      收藏:0      [点我收藏+]

#include<stdio.h>
int main()
{
  int a,b;
  int i;
  while(scanf("%d%d",&a,&b)!=EOF)
  {
    if(b==0)
      printf("1\n");
    else
    {
      a%=10;
      b=b%4+4;
      int s=a;
      for(i=1;i<b;i++)
      s*=a;
      s%=10;
      printf("%d\n",s);
    }
  }
}       //   借鉴

说一下原理,因为本题很特殊,只需要求出个位数字,开始的时候用同余定理,肯定会超时,换一种办法
下面是个位数字的规律
1: 周期为1, 结尾为1
2: 周期为4, 结尾为2 4 8 6
3: 周期为4, 结尾为3 9 7 1
4: 周期为2, 结尾为4 6
5: 周期为1, 结尾为5
6: 周期为1, 结尾为6
7: 周期为4, 结尾为7 9 3 1
8: 周期为4, 结尾为8 4 2 6
9: 周期为2, 结尾为9 
10: 周期为1, 结尾为0 

通过上面的规律很快就可以得到周期最大是4,只要对b%4,因为求的是个位数字,那么也直接对a%10

NYOJ 473 A^B Problem

原文:http://www.cnblogs.com/mycapple-zgs-111411/p/4678158.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!