快速幂模m HDU——1061 Rightmost Digit

来源:互联网 发布:传奇霸业经验数据 编辑:程序博客网 时间:2024/05/16 01:37

a*b%m=((a%m)*b)%m

题意:输入n,求n的n次方的最后一位。

#include<stdio.h>#include<string.h>#include<iostream>#define maxn 1010#define INF 0x3f3f3f3f__int64 quick(__int64 a,__int64 b,__int64 m){   __int64 ans=1;   while(b)   {        if(b&1)        {             ans=(ans*a)%m;             b--;        }        b/=2;        a=a*a%m;   }   return ans;}int main(){  int t;  __int64 a,b,m;  scanf("%d",&t);  while(t--)  {       scanf("%I64d",&a);       b=a;       m=10;       printf("%I64d\n",quick(a,b,m));  }   return 0;}


0 0