题意:求 N!的位数。 思路: 由 ,可知。 于是两边取对数得到。 最后的结果就是:。 ps:带有注释的是另一种做法。 ...
分类:
其他好文 时间:
2018-10-04 10:47:56
阅读次数:
134
//1018//思路:求这个阶乘结果的位数,因为是阶乘结果(乘积)取对数,就相当于对每个对数求和/* 123456=1.23456*10^5;log10(123456) = 5.09151;log10(1.23456 * 10 ^ 5) = log10(1.23456) + log10(10 ^ 5 ...
分类:
其他好文 时间:
2018-03-08 18:59:15
阅读次数:
186
最近一堆题目要补,一直咸鱼,补了一堆水题都没必要写题解。备忘一下这个公式。 Stirling公式的意义在于:当n足够大时,n!计算起来十分困难,虽然有很多关于n!的等式,但并不能很好地对阶乘结果进行估计,尤其是n很大之后,误差将会非常大。但利用Stirling公式可以将阶乘转化成幂函数,使得阶乘的结 ...
分类:
编程语言 时间:
2018-02-11 14:32:04
阅读次数:
402
斯特灵公式 Wiki http://zh.wikipedia.org/wiki/斯特林公式 /** \brief hdu 1018 * * \param date 2014/7/24 * \param state AC * \return * */ #include <iostream> #incl ...
分类:
其他好文 时间:
2017-05-20 20:33:54
阅读次数:
132
Big Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 31053 Accepted Submission(s): 14398 P ...
分类:
其他好文 时间:
2017-05-17 21:31:39
阅读次数:
224
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1018 题意:求n!的数位(即n!有多少位); 思路:对于一个数x,它的数位ans=log10(x); 证明:假设pow(10, y-1) <= x < pow(10, y) 1,显然有ans(x)=y; ...
分类:
其他好文 时间:
2016-10-19 19:41:28
阅读次数:
135
可以用斯特林公式直接求出n!的结果。 当n较小时公式已经很准确了,所以可以使用。 ...
分类:
其他好文 时间:
2016-07-31 13:00:24
阅读次数:
116
http://acm.hdu.edu.cn/showproblem.php?pid=1018 题目大意 : 求一个数的阶乘的位数 公式log10(n!)=log10(1)+log10(2)+log10(3)+log10(4)...+log10(n) 有这公式 一切都看起来简单了一大把 ...
分类:
其他好文 时间:
2016-05-16 15:48:35
阅读次数:
199
Big NumberTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 31681Accepted Submission(s): 14769Proble...
分类:
其他好文 时间:
2015-10-22 21:05:02
阅读次数:
135
题目大意:
求N!有多少位。1<=N<=10^7。
思路:
N的规模很大。不能直接模拟求位数。先考虑这种做法:
设A = N! = 1*2*3*4*…*N,那么位数就是(int)log10(A) + 1
而(int)log10(A) = log10(1*2*3*…*N) = log10(1) * log10(2) * log10(3) * … * log10(N)
这样累加起来就是结果了。不过因为N是10^7规模的,所以这样累加在HDU上可以AC,但是
POJ上还是超时的。
应该用斯特林公式来做。Sti...
分类:
其他好文 时间:
2015-04-14 19:49:23
阅读次数:
167