大数
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);
}