HDU 1061 Rightmost Digit

来源:互联网 发布:淘宝客服的自我介绍 编辑:程序博客网 时间:2024/06/07 14:21

Problem Description

Given a positive integer N, you should output the most right digit of N^N.

Input

The input contains several test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow.
Each test case contains a single positive integer N(1<=N<=1,000,000,000).

Output

For each test case, you should output the rightmost digit of N^N.

Sample Input

234

Sample Output

76

Hint

In the first case, 3 * 3 * 3 = 27, so the rightmost digit is 7.

In the second case, 4 * 4 * 4 * 4 = 256, so the rightmost digit is 6.


快速幂

#include<cstdio>#include<queue>#include<stack>#include<cstring>#include<vector>#include<map>#include<iostream>#include<algorithm>#include<functional>using namespace std;int main(){    int n,T;    cin>>T;  while (T--)  {      cin>>n;      int i,j,k;      for (i=n,j=n%10,k=1;i;i>>=1)      {          if (i&1) k=k*j%10;          j=j*j%10;      }      cout<<k<<endl;  }  return 0;}


0 0