//杭电1097

//求a^b的个位数字

//思路:(1)只计算个位数(2)计算过程中会出现周期
#include <stdio.h>
int main()
{

//此处使用__int64
 __int64 a,b;
 while(scanf("%I64d%I64d",&a,&b)!=EOF)
 {
  __int64 data[10];

 //times为循环周期
  int times =0;
  if(a>9)
  {
   a = a % 10;
  }
  data[0] = a;
  __int64 start = a;
  times++;
  a = a*start %10;
  while(a!=start)
  {   
   data[times] = a;
   times++;
   a = a*start %10;
  }
  int i = b% times -1;

 //输出时分两种情况,特别注意i<0的处理
  if(i<0)
     printf("%I64d\n",data[times-1]);
  else
     printf("%I64d\n",data[b % times-1]);
 }
 return 0;
}

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-02
  • 2021-12-19
  • 2021-06-03
  • 2021-12-01
  • 2021-07-25
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-12-02
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案