一个数a必然可以表示为10^(c+d),其中c为整数,d为小数。则n^n的首位取决于d的第一个有效数字。10^d是讲小数点后移的。
#include <iostream>
#include <string>
#include <cstring>
#include <queue>
#include <stack>
#include <cmath>
#include <algorithm>
#include <cstdio>
using namespace std;
int main()
{
int t;
cin >> t;
while(t -- )
{
double sum , per , beh , n;
cin >> n;
beh = n * log10(n) - (long long)(n* log10(n));
per = pow((double)10 , beh);
per = (long long )per;
cout << per << endl;
}
return 0 ;
}