数的长度

原创 2015年07月10日 19:44:28

描述

    N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)······*2*1.现在你的任务是计算出N!的位数有多少(十进制)?

输入
首行输入n,表示有多少组测试数据(n<10)
随后n行每行输入一组测试数据 N( 0 < N < 1000000 )
输出
对于每个数N,输出N!的(十进制)位数。

样例输入
3
1
3
32000
样例输出
1
1
130271


#include<stdio.h>
#include<math.h>
int main()
{
	int n,i,t;
	double d;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		d=0;
		for(i=1;i<=n;i++)
		  d+=log10(i);
		printf("%d\n",(int) d+1);
	}
	return 0;
}        




方法一: 
* 可设想n!的结果是不大于10的M次幂的数,即n!<=10^M(10的M次方),则不小于M的最小整数就是 n!的位数,对 该式两边取对数,有 M =log10^n! 即:M = log10^1+log10^2+log10^3...+log10^n 循环求和,就能算得M值,该M是n!的精确位数。当n比较大的时候,这种方法方法需要花费很多的时间。 
方法二: 
* 利用斯特林(Stirling)公式的进行求解。下面是推导得到的公式:res=(long)( (log10(sqrt(4.0*acos(0.0)*n)) + n*(log10(n)-log10(exp(1.0)))) + 1 ); 当n=1的时候,上面的公式不适用,所以要单独处理n=1的情况! 有关斯特林(Stirling)公式及其相关推导,这里就不进行详细描述,有兴趣的话可看这里。这种方法速度很快就可以得到结果。详细证明如下:http://episte.math.ntu.edu.tw/articles/mm/mm_17_2_05/index.html 


FIR的阶数,矩形窗的长度

 FIR滤波器的阶数是否就是矩形窗的长度?该值的改变对滤波器的滤波特性有何影响?以下是同一个用矩形窗设计的数字低通滤波器,通带截至频率为0.3pi,矩形窗的长度N为41和121。根据图形可以看出:(1...
  • silenceee
  • silenceee
  • 2006年11月06日 22:03
  • 3566

NYOJ_69数的长度

数的长度 描述     N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)······*2*1.现在你的任务是计算出N!的位数有多少(十进制)? 输入首行...
  • u013746460
  • u013746460
  • 2014年04月01日 09:04
  • 619

滤波器阶数

阶数越高,截止频率等参数越精确,但是电路结构也越复杂。 简单说比如你的截止频率是 100HZ, 你只有2阶的话可能实际的截止平率是95-1000HZ,衰减比较慢,但如果是20阶的话,可能截止频率就变成...
  • jimjayce
  • jimjayce
  • 2013年04月07日 22:02
  • 4634

任意长度数字的加法

在C/C++中用int,float,double等类型表示数字,但是它们长度都是有限的。如果要求数字是任意长度,则可以用字符串表示数字,同样也用字符串表示结果。 代码如下: #include #...
  • qq_35965090
  • qq_35965090
  • 2017年08月11日 20:44
  • 103

69 数的长度

//方法1:log10(N!)=log10(1)+log10(2)+...+log10(N) #include #include using namespace std; int main() { ...
  • u011329762
  • u011329762
  • 2014年07月24日 10:04
  • 299

NYOJ - 数的长度

数的长度 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)······*2*1.现在你的任务是计算出...
  • weixinru4631260
  • weixinru4631260
  • 2016年02月07日 10:33
  • 190

nyoj69数的长度

数的长度 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描述     N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)···...
  • sungaochao
  • sungaochao
  • 2014年09月12日 20:11
  • 311

数的长度nyist

数的长度 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描述     N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)···...
  • lois_123
  • lois_123
  • 2014年11月12日 21:49
  • 321

NYOJ69数的长度

数的长度 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描述     N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)···...
  • u010073953
  • u010073953
  • 2014年04月02日 09:39
  • 495

jquery动态验证输入框字符数

现在JQUERY 用的多,我这里也不例外。y
  • zx75991
  • zx75991
  • 2014年05月19日 15:17
  • 431
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数的长度
举报原因:
原因补充:

(最多只允许输入30个字)