您的位置:首页 > 其它

大数阶乘的位数

2012-08-22 13:07 295 查看
import java.util.*;
import java.math.*;
class Main
{
public static void main(String args[])
{
Scanner cin=new Scanner(System.in);
int i,n,m,des=0;
double sum,e=2.7182818284590452354,PI=3.141592653589793239;
while(cin.hasNext())
{
n=cin.nextInt();
while(n-->0)
{
m=cin.nextInt();
if(m<100000)
{
for(sum=0,i=1;i<=m;i++)
{
sum+=Math.log10(i);
}
}
else
{
sum=Math.log10(Math.sqrt(2*PI*m))+m*Math.log10(m/e);
}
des=(int)sum;
if(des<=sum)des++;
System.out.println(des);
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: