北大ACM中的1001浮点数题咋做啊?

来源:百度知道 编辑:UC知道 时间:2024/06/17 07:24:06
请教高人指点

使用JAVA的BigDecimal就可以:

import java.util.*;
class Main{
static{
for(Scanner i=new Scanner(System.in);i.hasNext();)
System.out.println(i.nextBigDecimal().pow(i.nextInt())
.toPlainString().replaceAll("^0|\\.?0*$",""));
}
}

用GCC的话可以这样写:
float v;u;main(n){for(;~scanf("%f%d",&v,&n);puts("")){int*r,p[999]={1},*q,t=p+n*4;for(;n--;)for(q=r=p;q<&n-2;r+=!*r&r<t)*q=(u=u/10+*q++*v*1e4+.5)%10;for(;r<q;v||printf(n+".%d",*q))n=q!=t,v*=n*!*--q;}}

高精度