杭电oj-1018
2015-05-14 19:18
211 查看
杭电oj1018
杭电oj1018,求n的阶乘有几位
我想到的:一个数n的位数就是lg n + 1,再根据对数的特性,不难得出为lg(1)+lg(2)+……+lg(n)+1
上代码:
然后在网上发现一个斯特林公式
公式一步到位~
继续上代码
ceil函数就是向上取整~
杭电oj1018,求n的阶乘有几位
我想到的:一个数n的位数就是lg n + 1,再根据对数的特性,不难得出为lg(1)+lg(2)+……+lg(n)+1
上代码:
#include <cstdio> #include <cmath> using namespace std; int main() { int t, n; scanf("%d", &t); for(int i=0; i<t; ++i) { scanf("%d", &n); double sum = 0; for(int j=1; j<=n; ++j) sum += log10((double)j); sum = sum + 1; printf("%d\n", (int)sum); } return 0; }
然后在网上发现一个斯特林公式
公式一步到位~
继续上代码
#include <cstdio> #include <cmath> using namespace std; const double pi = 3.1415926; int main() { int t, n; scanf("%d", &t); for(int i=0; i<t; ++i) { scanf("%d", &n); int len = ceil((n*log((double)n)-n+log(2.0*(double)n*pi)/2.0)/log(10.0)); if(!len) len++; printf("%d\n", len); } return 0; }
ceil函数就是向上取整~
相关文章推荐
- 杭电OJ——1018 Big number!
- 杭电OJ:1018
- 杭电OJ题1018 Big Number 解题报告
- 杭电OJ(HDOJ)1018题:求n的阶乘位数(数学公式)
- 杭电oj-1018-Big Number
- 杭电 HDU ACM 1018 Big Number
- 杭电oj 1000
- 【杭电oj5671】Matrix
- 杭电OJ 1789(贪心)
- 杭电 OJ 1720 A+B Coming
- 杭电OJ——1079 Calendar Game
- 杭电OJ编码1000
- 【杭电oj】2719 - The Seven Percent Solution (特殊字符输出)(水)
- 【杭电oj】2111 - Saving HDU(贪心,水)
- 杭电OJ 题 2673 shǎ崽 OrOrOrOrz 解题报告
- 【杭电oj】1108 - 最小公倍数(gcd,水)
- 杭电oj编码2015
- 【杭电oj】1060 - Leftmost Digit(数学好题)
- Java解题-杭电OJ-1004题
- 【杭电oj】1722 - Cake(数论,GCD)