Qiuqiqiu  
不管道路多么崎岖坎坷,我永远不停下追逐梦想的脚步!

http://acm.hdu.edu.cn/showproblem.php?pid=1060
求x^y的前几位
高斯函数x=[x]+{x},[x]为x的整数部分,{x}为x的小数部分
运用对数性质,t=x^y=a*10^n(科学计数法)
lgt=y*lgx=lga+n (n=[lgt],lga={lgt},因为1<=a<10,所以0<=lga<1)
a=10^{lgt}
e=y*lgx, e=e-[e], a=10^e

View Code
 1 #include <stdio.h>
2 #include <math.h>
3 int main()
4 {
5 int T;
6 scanf("%d",&T);
7 while (T--)
8 {
9 double n,ans,x;
10 scanf("%lf",&n);
11 x=floor(n*log10(n));
12 ans=pow(10.0,n*log10(n)-x);
13 printf("%d\n",(int)ans);
14 }
15 }



posted on 2011-11-28 15:48  Qiuqiqiu  阅读(100)  评论(0编辑  收藏  举报