Leftmost Digit hdu1060

来源:互联网 发布:适合冬天的沐浴露 知乎 编辑:程序博客网 时间:2024/05/17 02:32

N^N = a * 10^x

两边同时取对数

NlgN = lg(a*10^x)

NlgN = lga + x   //  NlgN  必定是小数, a 是大于0小于10 ,所以 lga 是大于0 小于1 的小数,x 必定是 NlgN 的整数部分,可以利用 x = floor(NlgN) 来算

lga = NlgN - x

a = 10^(NlgN - floor(NlgN))

 

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
234
 

Sample Output
22
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.
0 0