前言:
如今兄弟们对“大数阶乘c语言程序报告”可能比较重视,你们都想要了解一些“大数阶乘c语言程序报告”的相关文章。那么小编也在网络上汇集了一些有关“大数阶乘c语言程序报告””的相关资讯,希望朋友们能喜欢,同学们快快来了解一下吧!大数阶乘问题,是很常见的,来看一下T公司的面试题目:
问题一:
1000的阶乘末尾有多少个0?
问题二:
1000的阶乘有多少位数?
问题三:
1000的阶乘的值是多少?
1000的阶乘末尾有多少个0?
直接递归计算吗?有点天真了。1000的阶乘,是一个非常大的数字,得想其它办法了。注意:要求的是1000的阶乘末尾的0的个数,而不是求1000的阶乘。
喜欢编程的小伙伴可以加小编的Q群1026782549,进群可以领取免费的学习资料跟源代码哦!也可以关注小编的微信公众号:编程雯子,领取资料哦
很显然,从分解质因数的过程来看,结尾的0必然是2和5的乘积,而且在阶乘中,5是稀缺值,而2是富余值,所以,只需要知道质因数中5的个数就行了。我们以26的阶乘为例:
可见:其中有6个5,有充足的2,所以只需要看5的个数。易知,26的阶乘的末尾有6个0. 用阶乘计算器来看下,果然如此:
我们来讨论更一般的情况:
设f(x)是x中因数5的个数, [x]为x向下取整的值,则有:
所以:
至于程序,给个递归版本吧:
结果:249. 可见,1000的阶乘末尾有249个0.
喜欢编程的小伙伴可以加小编的Q群1026782549,进群可以领取免费的学习资料跟源代码哦!也可以关注小编的微信公众号:编程雯子,领取资料哦
1000的阶乘有多少位数?
直接递归计算吗?有点天真了。我们来看下如下规律:
设f(x)为x的数位个数,[x]为x向下取整的值,则有:
至于程序,那就很简单了:
结果:2568. 可见,1000的阶乘有2568位。
1000的阶乘的值是多少?
直接递归计算吗?有点天真了。 还是用字符串来做吧:
结果是:
可以看到,1000的阶乘有2568位,且最后有249个0.
喜欢编程的小伙伴可以加小编的Q群1026782549,进群可以领取免费的学习资料跟源代码哦!也可以关注小编的微信公众号:编程雯子,领取资料哦
标签: #大数阶乘c语言程序报告