HDU1061 Rightmost Digit

 题目大意:求n^n最右位上的数字。

#include <cstdio>

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    int n2[4]={6,2,4,8};
    int n3[4]={1,3,9,7};
    int n4[2]={6,4};
    int n7[4]={1,7,9,3};
    int n8[4]={6,8,4,2};
    int n9[2]={1,9};
    int t;
    while(scanf("%d",&t)!=-1)
    while(t--)
    {
        int n;
        scanf("%d",&n);
        if(n%10==0||n%10==1||n%10==5||n%10==6)
          printf("%d\n",n%10);
        else if(n%10==2)
          printf("%d\n",n2[n%4]);
        else if(n%10==3)
          printf("%d\n",n3[n%4]);
        else if(n%10==4)
          printf("%d\n",n4[n%2]);
        else if(n%10==7)
          printf("%d\n",n7[n%4]);
        else if(n%10==8)
          printf("%d\n",n8[n%4]);
        else if(n%10==9)
          printf("%d\n",n9[n%2]);
    }
    return 0;
}

你可能感兴趣的:(HDU1061 Rightmost Digit)