hdoj 1018

计算阶乘位数的数学方法

这就是一个纯粹的数学问题,求n的阶乘的位数,有个求正整数的位数的公式

(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方面也应该有长足的进步了,成绩方面也要拿的出手了,加油吧!

转载于:https://www.cnblogs.com/tangjj-nenu/p/3284049.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值