hdoj 1018 Big Number
来源:互联网 发布:dll 编程 输出 编辑:程序博客网 时间:2024/06/05 09:27
题目:
求整数n!的位数 1 <= n <= 10^7
类型:数论
有这样一个定理:f(n) = log10(n) + 1 f(n)为整数n的位数
证明:
设n的位数为m,则有10^(m - 1) <= n < 10^m,所以有m - 1 <= log10(n) < m
得:log10(n) < m <= log10(n) + 1
对log10(n)向下取整,得m = (int)log10(n) + 1,得证
所以有:f(n!) = f(1 * 2 * 3 * ... * n) + 1 = f(1) + f(2) + f(3) +...f(n) + 1
// hdoj 1018 Big Number#include <iostream>#include <cmath>#include <cstdio>using namespace std;#define FOR(i,a,b) for(i = (a); i < (b); ++i)#define FORE(i,a,b) for(i = (a); i <= (b); ++i)int main(){ int i, j, n, m; while(cin>>n) { FOR(i, 0, n) { cin>>m; double end = 1; FORE(j, 2, m) end += log10(j * 1.0); cout<<(int)end<<endl; } } return 0;}
- HDOJ 1018 Big Number
- HDOJ 1018 Big Number
- hdoj 1018 Big Number
- HDOJ 1018 Big Number
- HDOJ 1018 Big Number
- hdoj 1018 Big Number
- HDOJ 1018 Big Number
- HDoj-1018-Big Number
- HDOJ Big Number 1018
- hdoj 1018 big number
- hdoj 1018 Big Number
- HDOJ 1018 Big Number
- hdoj-1018-Big Number
- HDOJ 1018 Big Number
- HDOJ 1018 Big Number
- HDOJ 1018 Big Number
- HDOJ 1018 Big Number
- hdoj 1018 Big Number
- RMAN简明教程之六——RMAN的管理
- 每天写一点,不爽的时候写一点
- Sicily 1180. Pasting Strings
- RMAN简明教程之七——恢复目录与恢复目录的使用
- part-time、music lover、have a pizza、be respectful to
- hdoj 1018 Big Number
- 分组合并字符串字段
- poj2526 Minimum Cost (费用流)
- 有關TBitmap的PixelFormat代表意義
- diskboot
- get与post方法 .
- MYSQL 日期函数大全
- Android开发之旅:环境搭建及HelloWorld
- 存储过程创建临时表和返回临时表