Leftmost Digit |
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) |
Total Submission(s): 3677 Accepted Submission(s): 1631 |
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 思路: 对于任何一个num 都有 a*10^n;(科学计数) 一个数的最左边的数就是a的整数部分。 所以num^num=a*10^n 开 log得num*lg(num)=lg(a)+n,这里a由于小于10,lg(a)小于1,是小数; 令x=lg(a)+n; 那么 a=10^(x-n),因为lg(a)小数,所以n=int(x), 所以 a=10^(x-int(x)). 然后a 取整就好了。 参考代码:
//强大的数学 |