YT14-HDU-求N^N的個位數(暴力破解版)

不被看好的青春叫成長發表於2015-01-27

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

2
3
4

Sample Output

7
6

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 <iostream>
using namespace std;
int main()
{
    int n,T,m,a;
    cin>>T;
    while (T--)
    {
        cin>>n;
        a=n%10;
        if (a==0||a==1||a==5||a==6||a==9)
            m=a;
        else if (a==2)
        {
            if(n%4==0)
                m=6;
            else
                m=4;
        }
        else if (a==3)
        {
            if (n%4==1)
                m=3;
            else
                m=7;
        }
        else if (a==4)
        {
            m=6;
        }
        else if (a==7)
        {
            if (n%4==1)
                m=7;
            else
                m=3;
        }
        else
        {
            if (n%4==0)
                m=6;
            else
                m=4;
        }
        cout<<m<<endl;
    }
    return 0;
}


網上看到的解題步驟,很HUANG很暴力。。。偏偏我想不出更好的方法了。T.T差距果然還是很大啊



相關文章