题意:求大数n!的位数。

根据n! = (int)log(n!)+1

方法1:

log(n!) = log(1*2*3*...*n) = log1+log2+...+logn

方法2:

斯大林公式:

n! = sqrt(2*PI*n)*(n/e)^n

两侧取对数有

log10(n!) = 1/2log(2*PI*n) + n*log(n/e)

code1:

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<cmath>
  4. using namespace std;
  5. int main()
  6. {
  7. int n;
  8. scanf("%d",&n);
  9. int t;
  10. while(n--)
  11. {
  12. scanf("%d",&t);
  13. double ans = ;
  14. for(int i = ; i <= t; i++){
  15. ans+=log10(i);
  16. }
  17. ans++;
  18. printf("%d\n",(int)ans);
  19. }
  20. return ;
  21. }

code2:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #define e 2.71828182
  5. #define PI acos(-1)
  6. int main()
  7. {
  8. int t;
  9. int n;
  10. double w; //斯特林数
  11. scanf("%d",&t);
  12. while(t--)
  13. {
  14. scanf("%d",&n);
  15. w=(1.0/*log10(*PI*n)+n*log10(n/e));
  16. printf("%d\n",(int) w+); //记得+1,不能少。
  17. }
  18. return ;
  19. }

hdu_1018(斯大林公式/n!的位数)的更多相关文章

  1. 字符串匹配(KMP算法)

    KMP算法,是由Knuth,Morris,Pratt共同提出的模式匹配算法,其对于任何模式和目标序列,都可以在线性时间内完成匹配查找,而不会发生退化,是一个非常优秀的模式匹配算法. 举个例子来说,如果 ...

  2. 4种字符串匹配算法:KMP(下)

    回顾:4种字符串匹配算法:BS朴素 Rabin-karp(上) 4种字符串匹配算法:有限自动机(中) 1.图解 KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R ...

  3. bzoj3000 Big Number 数论,斯特林公式

    Description 给你两个整数N和K,要求你输出N!的K进制的位数. Input 有多组输入数据,每组输入数据各一行,每行两个数——N,K Output 每行一个数为输出结果 Sample In ...

  4. 计算机网络基础之IP地址详解

    计算机网络基础之IP地址详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.IP地址概述 1>.什么是IP地址 我们为什么要使用逻辑地址(IP地址)来标识网络设备,而不采 ...

  5. 51nod 1058 N的阶乘的长度 位数公式

    1058 N的阶乘的长度基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3.Input输入N( ...

  6. 7-n!的位数(斯特灵公式)

    http://acm.hdu.edu.cn/showproblem.php?pid=1018 Big NumberTime Limit: 2000/1000 MS (Java/Others) Memo ...

  7. 斯特林(Stirling)公式 求大数阶乘的位数

    我们知道整数n的位数的计算方法为:log10(n)+1n!=10^m故n!的位数为 m = log10(n!)+1 lgN!=lg1+lg2+lg3+lg4+lg5+................. ...

  8. 数据结构作业——N!的位数(斯特灵公式)

    Description 求N!的位数 Input 输入第一行为一个正整数 n(1<=n<=25000). Output 输出 n!的位数. Sample Input 1020 Sample ...

  9. HDOJ 1018 Big Number(大数位数公式)

    Problem Description In many applications very large integers numbers are required. Some of these app ...

随机推荐

  1. sharepreference使用教程

    1.应用 SharePreference主要用于保存一些数据,比如用户登录后的user_id,user_mobile,这样就可以做自动登录了,每次判断SharePreference中有没有数据,有的话 ...

  2. C:宏定义的一些格式(怕忘记)

    现在还没怎么用到宏定义,但以后肯定会经常用的,写下这盘,以后忘记了可以温故.首先宏定义必须写在函数之外,其作用域从宏定义命令起到源程序结束,也就是说一但定义系统就会分配内存,想让它结束用“#undef ...

  3. xamarin android布局

    xamarin android布局练习(1) xamarin android布局练习,基础非常重要,首先要学习的就是android的布局练习,xamarin也一样,做了几个xamarin androi ...

  4. C#中级-Windows Service程序安装注意事项

    一.前言 这周除了改写一些识别算法外,继续我的Socket服务编写.服务器端的Socket服务是以Windows Service的形式运行的. 在我完成Windows Service编写后,启动服务时 ...

  5. 详细的DedeCMS(织梦)目录权限安全设置教程

    一.目录权限根据统计,绝大部分网站的攻击都在根目录开始的,因此,栏目目录不能设置在根目录.DEDECMS部署完成后,重点目录设置如下:1)将install删除.2) data.templets.upl ...

  6. qrc资源文件加载后,裸机环境下图片不显示

    问题描述:在qt开发环境下,使用qss进行界面美化工作,里面包含许多图片资源.最后项目决定把这些图片资源和代码一起打包.然后就把图片资源和qss文件一起编入qrc文件中进行编译.在本机开发环境下是没有 ...

  7. 《Create Your own PHP Framework》笔记

    前言 大力推荐该教程:<Create Your own PHP Framework> Symfony的学习蛮累的,官方文档虽然很丰富,但是组织方式像参考书而不是指南,一些不错的指导性文档常 ...

  8. 分享非常好用的前端分页js工具类 灵活 简单易懂

    分享自己封装的前端分页js工具类  下面是默认样式效果截图 可以随意更改js及css 很灵活 /** * pageSize, 每页显示数 * pageIndex, 当前页数 * pageCount 总 ...

  9. mysql zip 版安装

    http://jingyan.baidu.com/article/8cdccae946133f315513cd6a.html

  10. c#实现超实用的<证件照换底色>小工具

    1前言     我们在工作和生活中经常要填写一些个人资料,这时候往往需要放证件照上去,但是有时候人家要求是红底或白底,但是偏偏不巧的是你以前照了张蓝底的.这时候你想换个底色,于是在百度上一搜“证件照换 ...