N!的数位

N!的数位

 (2009-12-28 20:46:28)
标签: 

杂谈

分类: HSY_ACM

大数

Time Limit:20000MS  Memory Limit:65536K
Total Submit:35 Accepted:8

Description

在很多应用中我们都要用到大数字,例如,在密码学中,往往需要对大数据进行安全加密。此时,需要得到一个数字的阶乘结果的总位数。

Input

输入包含多行,每行一个整数,第一行整数n代表总的测试情况,接下来的n行每行一个整数1 <= k <= 10^7对应一个测试情况。

Output

输出多行,每行为每种测试情况下对应整数的阶乘总位数。

Sample Input

 

2
10
20

 

Sample Output

 

7
19

 

 

//例如1000阶乘位数:
log10(1)+log10(2)+···+log10(1000)取整后加1

#include<stdio.h>
#include<math.h>
void main()
{
  int n,i;
  double d;
  scanf("%d",&n);
  d=0;
  for(i=1;i<=n;i++)
   d+=log10(i);
  printf("%d\n",(int)d+1);
}

原文地址:https://www.cnblogs.com/yuzhaoxin/p/2205224.html