您的位置:首页 > 其它

HDU 1061 Rightmost Digit

2011-09-18 12:36 435 查看
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

Answer

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

int n,i,x,y,a,b;

cin>>n;

for(i=0;i<n;i++)

{

cin>>x;

a=x%10;

if(a==0 || a==1 || a==5 || a==6)

cout<<a<<endl;

else

{

b=x%4+4;

y=pow(a,b);

cout<<y%10<<endl;

}

}

return 0;

}

// 观察0-9 n次方的个位数 即可得出规律

0、1、5、6:均为本身

2:2 4 8 6 2 ...

3:3 9 7 1 3 ...

4:4 6 4 ...

7:7 9 3 1 7 ...

8:8 4 2 6 8 ...

9:9 1 9 ...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: