這就是一個純粹的數學問題,求n的階乘的位數,有個求正整數的位數的公式spa
(int)log10(a) + 1;
這是爲何呢,證實以下:
對於任意一個給定的正整數a,假設10^(x-1)<=a<10^x,那麼顯然a的位數爲x位,又由於log10(10^(x-1))<=log10(a)<(log10(10^x)),即x-1<=log10(a)<x,則(int)log10(a)=x-1,即(int)log10(a)+1=x,即a的位數是(int)log10(a)+1。
這樣就能夠獲得,n的階乘的位數等於
(int)(log10(1)+log10(2)+log10(3)+......+log10(n)) + 1,這就不用貼代碼了吧。。。。
再說些題外的話吧,已經開學一天了,我也成學長了,,,,囧,這學期呢,本身就看着吧,已經這麼水了,首先要過四級,而後在acm方面也應該有長足的進步了,成績方面也要拿的出手了,加油吧!