Font Size:

Problem Description

Given a positive integer N, you should output the leftmost 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 leftmost digit of N^N.

Sample Input

2
3
4

Sample Output

2
2

Hint

In the first case, 3 * 3 * 3 = 27, so the leftmost digit is 2.
In the second case, 4 * 4 * 4 * 4 = 256, so the leftmost digit is 2.
 
 
#include<stdio.h>
#include<math.h>
int main(  )
{
    int T;
    double n,s;
    scanf( "%d",&T );
    while( T-- )
    {
        scanf( "%lf",&n );
        s = n * log( n ) / log( 10 );//以10为底n的对数再乘以n
        long long t = s;//用int 会超的
        s -= t;//取小数部分
        int c = pow( 10,s );//得到结果
        printf( "%d\n",c );
    }
    return 0;
}

 

posted on 2012-04-19 22:32  狸の舞  阅读(280)  评论(0编辑  收藏  举报