这题说穿了就水了,发现高精度跟快速幂都不能过,本来以为是打表的。。。后来看了大神的思路才明白的
log10(n^n)=a+b;a为整数,b为小数;
所以n^n最左边的就是10^b的整数部分,结束;
#include <iostream>
#include <cmath>
using namespace std;
//using std::cout;
int main()
{
int i,t,n,ans;
__int64 a;
double f;
cin>>t;
while (t--)
{
cin>>n;
f=(double)n*log10(n);
a=f;
f=f-a;
ans=int(pow(10,f));
while (ans/10)
{
ans/=10;
}
cout<<ans<<endl;
}
}