1000的階乘有多少位?有多少個連續的0?
有個階乘公式
例如1000階乘位數:
log10(1)+log10(2)+···+long10(1000)取整後加1
或者
log(N!)=lnN!/ln10
=(NlnN-N)/ln10
=2565.7
本來有一種方法可以獲取階乘結果的位數的,但是要計算N個LOG10,時間上不好,所以放棄這種方法:
設位數為x,
列等式10^x=N!, www.2cto.com
則x=log10(N!)
則x=log10(1)+log10(2)+log10(3)+...+log10(N),
最後x向上取整就行了
//////////////////////////////////////////////////////////////////////////////
每出現一個2和5,就會在末尾有一個0,所以只要看,從1
到1000中總共有多少個2和5就可以了,又因為5總比2少,所以,只要看1000的階乘中有多少個約數5就可以了。同樣,只有末尾是0或者5的數才會有5,所以總共只有200個數其中包含5,但是,其中有1000/25=40個數包含2個5,1000/125=8個數包含三個5,1000/625=1個數包含4個5,所以總共有200+40+8+1=249個5,所以結果裡總共有249個連續的0。
/////////////////////////////////////////////////////////////////////////