杭电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);}
    }
  }
}
目录
相关文章
|
7月前
|
Java
杭电 OJ 1010-1019 Java解法(未更新完毕)
杭电 OJ 1010-1019 Java解法(未更新完毕)
32 1
|
7月前
|
Java
杭电acm1201 18岁生日 Java解法 时间类
杭电acm1201 18岁生日 Java解法 时间类
33 0
|
7月前
|
算法 Java
杭电 OJ 1000-1009 Java解法
杭电 OJ 1000-1009 Java解法
26 0
|
7月前
|
Java
杭电acm2018 母牛的故事 Java解法 经典递归
杭电acm2018 母牛的故事 Java解法 经典递归
34 0
|
7月前
|
Java BI
杭电acm1013 Digital Roots 数字根 Java解法 高精度
杭电acm1013 Digital Roots 数字根 Java解法 高精度
31 0
|
Java
杭电6318(归并排序)逆序数(java)
归并排序是采用分冶实现的,其核心思想就是分冶得到两边经过递归是有序的,(因为分到最后就是两个元素的比较。
101 0
杭电1280java实现
还记得Gardon给小希布置的那个作业么?(上次比赛的1005)其实小希已经找回了原来的那张数表,现在她想确认一下她的答案是否正确,但是整个的答案是很庞大的表,小希只想让你把答案中最大的M个数告诉她就可以了。
83 0
|
测试技术 定位技术
杭电1044java实现dfs bfs
它写在“夫人的书:创世之后,残酷的神摩洛克反抗了造物主马尔杜克的权威。摩尔从马尔杜克那里偷走了众神中所有神器中最强大的一件,也就是叶多尔的护身符,并且他隐藏了它在Gehennom的阴暗洞穴,现在潜伏在他身边的Under World,并且是他的时间。
98 0
|
Java
杭电1043java实现bfs一遍
这个15难题已经存在了100多年了,即使你不知道它的名字,你也看到了。它由15个滑动瓦片构成,每个滑动瓦片的数量从1到15,并且全部装入4乘4帧,缺少一个瓦片。
91 0
|
9天前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者