杭电1060
此题是一道数学题,也是一道技巧题,也是不能直接算的,否则会超时的!!!
此题思路:
设n^n=d.xxxx*10^(k-1),其中k表示n^n的位数;
d.xxxx=10^(log10(n^n)-(k-1));
其中k=(__int64)(log10(n^n)+1;
所以d=(int)(10^(log10(n^n)-(k-1)))=(int)(10^(log10(n^n)-((__int64)(log10(n^n)+1;-1)));
此题思路比较麻烦,但程序还是很简单的哈!
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int T,n;
double x=0.0;
cin>>T;
while(T--)
{
cin>>n;
printf("%d\n",(int)(pow(10,((n*log10((double)n)-(__int64)(n*log10(n)))))));
}
return 0;
}
联系方式