hdu 1061 Rightmost Digit

    技术2022-05-20  76

    要求n^n的最右边一位,由观察可知,这一位的结果只与n的个位上的数字有关

    结果为((n)^n),线性暴力求解超时了,用二进制加速

     

    代码:

    #include<iostream> #include<cstdio> using namespace std; int pow(int p,int n) { int a=p,ret=1; while(n) { if(n&1) ret=ret*a; a=a*a; n>>=1; } return ret; } int main() { int i,n,ans; scanf("%d",&i); while(i--) { scanf("%d",&n); cout<<pow(n,n)<<endl; } return 0; } 


    最新回复(0)