此题是一道数学题,也是一道技巧题,也是不能直接算的,否则会超时的!!!
此题思路:
设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;
}
杭电1060
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
上一篇:杭电1005
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Leftmost Digit(杭电1060)(求N^N的最高位)
Leftmost Di
git 取整 java -
【杭电】[1060]Leftmost Digit
之前宇神提到的一题 取对数之后可以求出 x=...
#include 科学计数法 git 取整 ZOJ -
杭电1050
杭电1050
#include ios i++