Go...

当前位置: 首页>>世界杯1998

【面试智力题】1000!有几位数,为什么?

问题描述

1000!有几位数,为什么?

解答思路

设一个数为X,用科学计数法表示为X=a*10^b,其中1

示例: 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)

代码语言:javascript代码运行次数:0运行复制#include

#include

int main()

{

double sum = 0.0;

for (int i = 1000; i >=1; i--)

{

sum += log10(i);

}

printf("%d\n", (int)sum+1);//2568

return 0;

}