问题描述
1000!有几位数,为什么?
解答思路
2568位
设一个数为X,用科学计数法表示为X=a*10^b,其中1<a<10,b为整数,则X有1+b位数
例如:1995=1.995* 10^3,有1+3=4位数 56789=5.6789*10^4,有1+4=5位数。其中3,4是通过取对数的整数部分获得,lg(1995)的整数部分是3,lg(56789)的整数部分是4
求1000!有几位,此问题转化成求lg(1000!)+1的值。
lg(1000!)=lg(1000*999…*1)=lg(1000)+lg(999)+…+lg(1)
其中lg(1000)+lg(999)+…+lg(1)可通过如下代码计算出来
#include <stdio.h>
#include <math.h>
int main