http://acm.hdu.edu.cn/showproblem.php?pid=1060
要求输出N^N次方的最高位
#include<stdio.h>
#include<math.h>
#include<iostream>
using namespace std;
int main()
{
int t,n;
double ans;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
ans=pow(10.0,n*1.0*log10(n*1.0)-floor(n*log10(n*1.0)));
printf("%I64d\n",(__int64)ans);
}
return 0;
}
/*
lg(n^n)=n*lg(n)
lg(2023) = lg(2000) + lg(2.023)
= 3+lg(2.023)
(int)pow(10,lg(2.023))=2 这就是ans
*/