http://acm.hdu.edu.cn/game/entry/problem/show.php?chapterid=2§ionid=1&problemid=11
对一个数num可写为 num=10 n + a, 即科学计数法,使a的整数部分即为num的最高位数字num num =10 n + a 这里的n与上面的n不等两边取对数: num*lg(num) = n + lg(a);因为a<10,所以0<lg(a)<1令x=n+lg(a); 则n为x的整数部分,lg(a)为x的小数部分又x=num*lg(num);a=10 (x-n) = 10 (x-int(x)))再取a的整数部分即得num的最高位
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t,n;
cin>>t;
while(t--)
{
cin>>n;
double x=n*log10(n*1.0);
x-=(long long)x;
int a=pow(10.0,x);
cout<<a<<endl;
}
return 0;
}