c语言sscanf函数的用法是什么
314
2022-12-01
1000!有几位数,为什么?
1000!=1000 * 999 * 998 * … * 2 * 1,可以见得1000!是一个很大的数。 那么如何计算1000!的位数呢? 我们知道任何一个数都可以用科学计数法表示,比如 1234=1.234 * 103 我们如果对该等式两边同时取10的对数,那么等式就变为 log10(1234)=log10(1.234 * 103) 也就等价于 log10(1234)=log10(1.234) +log10103 最后变为 log10(1234)=log10(1.234)+3 我们发现1234的位数就等于1234对10取对数后的整数部分再加1。那么就可以这么说: 如果数字N用科学计数法表示为:N = a * 10n(0 #include 值得注意的是,我们应该用double类型的变量来存储log10(1000!),保证 1000 个小数相加数值精确,不然会使得数据丢失,导致结果不准确。 最后将sum强制类型转化为整型后再加1,输出的结果便是1000!的位数了,总共2568位,要是我们老老实实的将1000!计算出来,然后去数它的位数,那将是一个不小的工作量啊。也由此看出了代码魅力的所在。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~