杭电1018java(斯特林公式)

简介: In many applications very large integers numbers are required. Some of these applications are using keys for secure transmission of data, encryption, etc. In this problem you are given a number, you have to determine the number of digits in the factorial of the number.

Big Number



Problem Description


In many applications very large integers numbers are required. Some of these applications are using keys for secure transmission of data, encryption, etc. In this problem you are given a number, you have to determine the number of digits in the factorial of the number.


Input


Input consists of several lines of integer numbers. The first line contains an integer n, which is the number of cases to be tested, followed by n lines, one integer 1 ≤ n ≤ 107 on each line.


Output


The output contains the number of digits in the factorial of the integers appearing in the input.


Sample Input


2

10

20


Sample Output


7

19


核心是斯特林公式对阶乘的换算写法,还有就是运算位数取log10的对数 1就是所需要的值。


斯特林公式


附上java代码


import java.util.Scanner;
public class 杭电1018 {
  public static void main(String[] args)
  {
    Scanner sc=new Scanner(System.in);
    int n=sc.nextInt();
    double pi=Math.PI;    
    double e=Math.E;    
    for(int i=0;i<n;i  )
    {
      long b=sc.nextLong();
      if(b==0) {System.out.println(1);}
      else {
      double value=Math.log10(Math.sqrt(2*pi*b)) b*Math.log10(b/e);
      System.out.println((int)(value) 1);}
    }
  }
}
目录
相关文章
|
Java
杭电6318(归并排序)逆序数(java)
归并排序是采用分冶实现的,其核心思想就是分冶得到两边经过递归是有序的,(因为分到最后就是两个元素的比较。
73 0
杭电1280java实现
还记得Gardon给小希布置的那个作业么?(上次比赛的1005)其实小希已经找回了原来的那张数表,现在她想确认一下她的答案是否正确,但是整个的答案是很庞大的表,小希只想让你把答案中最大的M个数告诉她就可以了。
62 0
|
测试技术 定位技术
杭电1044java实现dfs bfs
它写在“夫人的书:创世之后,残酷的神摩洛克反抗了造物主马尔杜克的权威。摩尔从马尔杜克那里偷走了众神中所有神器中最强大的一件,也就是叶多尔的护身符,并且他隐藏了它在Gehennom的阴暗洞穴,现在潜伏在他身边的Under World,并且是他的时间。
65 0
|
Java
杭电1043java实现bfs一遍
这个15难题已经存在了100多年了,即使你不知道它的名字,你也看到了。它由15个滑动瓦片构成,每个滑动瓦片的数量从1到15,并且全部装入4乘4帧,缺少一个瓦片。
59 0
|
算法 Java
杭电1430康托 bfs(java)
在魔方风靡全球之后不久,Rubik先生发明了它的简化版——魔板。魔板由8个同样大小的方块组成,每个方块颜色均不相同,可用数字1-8分别表示。任一时刻魔板的状态可用方块的颜色序列表示:从魔板的左上角开始,按顺时针方向依次写下各方块的颜色代号,所得到的数字序列即可表示此时魔板的状态。
63 0
杭电1254java实现(双bfs 优先队列)
推箱子是一个很经典的游戏.今天我们来玩一个简单版本.在一个M*N的房间里有一个箱子和一个搬运工,搬运工的工作就是把箱子推到指定的位置,注意,搬运工只能推箱子而不能拉箱子,因此如果箱子被推到一个角上(如图2)那么箱子就不能再被移动了,如果箱子被推到一面墙上,那么箱子只能沿着墙移动. 现在给定房间的结构,箱子的位置,搬运工的位置和箱子要被推去的位置,请你计算出搬运工至少要推动箱子多少格.
85 0
|
存储
杭电1016Java实现
如图所示,环由n个圆组成。将自然数1,2,…,n分别放入每个圆圈中,并且相邻两个圆圈中的数字总和应为素数。
46 0
杭电1241java实现dfs
GeoSurvComp地质调查公司负责检测地下油藏。 GeoSurvComp一次与一个大的矩形区域一起工作,并创建一个网格,将网格划分为多个方块。然后分别分析每个地块,使用传感设备确定该地块是否含有油。含油的情节被称为口袋。如果两个口袋相邻,则它们是同一个油藏的一部分。油藏可能相当大,可能含有大量的口袋。你的工作是确定网格中包含多少个不同的油藏。
57 0
|
定位技术
杭电1180java实现(bfs)
多组数据输入M N,表示大小然后输入地图。*表示墙壁,’.‘表示可以通过,S初始,T结尾位置,‘-’,‘|’代表初始楼梯状况,每隔一秒就会换成对方。-左右走,跳过楼梯,|上下走,跳过楼梯(相当于走两格)
68 0
|
测试技术
杭电oj1072java实现bfs
伊格内修斯昨晚有一场噩梦。他发现自己身陷迷宫,身上有一枚定时炸弹。迷宫有一个出口,在炸弹爆炸之前,伊格内修斯应该走出迷宫。炸弹的最初爆炸时间设定为6分钟。为了防止炸弹爆炸,伊格内修斯必须缓慢移动,即从一个区域移动到最近的区域(也就是说,如果Ignatius现在站在(x,y)上,他只能在(x 1, y),(x-1,y),(x,y 1)或(x,y-1))在1分钟内。迷宫中的某个区域包含一个炸弹重置设备。他们可以将爆炸时间重置为6分钟。
90 0