数的长度

原创 2012年03月21日 10:40:54
 

http://acm.nyist.net/JudgeOnline/problem.php?pid=69

数的长度

时间限制:3000 ms  |  内存限制:65535 KB
难度:1
描述

    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 strrling(int n)
{
const double p=acos(-1.0);
double c1=log10(2*p);
double c2=0.434294481903;
double c3=log10(1.0*n);
int s=1;
if(n>3)
s=(int)((c3+c1)/2+n*(c3-c2)+1);
return s;
}
int main()
{
	int n;
	scanf("%d",&n);
	while(n--)
	{
		int m;
		scanf("%d",&m);
		printf("%ld\n",strrling(m));
	}
}


 

总结:大数的阶乘位乘公式。strrling函数。本来不会,特此记下。

spl中数表字段的一般长度

  • 2009年08月11日 14:04
  • 38KB
  • 下载

打开文件读取信息,统计单词长度大于指定值的个数

#include #include #include #include #include #include #include using namespace std; typedef v...

长度为n的数组乱序存放着0至n-1. 现在只能进行0与其他数的交换.将数组中的元素按对应位置放置使得a[i]=i

原文链接:http://blog.csdn.net/u014659656/article/details/45115573 Question:长度为n的数组乱序存放着0至n-1. 现在只能进行0与...

长度为n的数组乱序存放着0至n-1. 现在只能进行0与其他数的交换.将数组中的元素按对应位置放置使得a[i]=i

长度为n的数组乱序存放着0至n-1. 现在只能进行0与其他数的交换.将数组中的元素按对应位置放置使得a[i]=i; 此题目中的数据很像一个哈希表,但是只能用和0交换的方式进行位置调整。目前只知道算法复...

算法实战:给定一个带通配符问号的数W,问号可以代表任意一个一位数字。 再给定一个整数X,和W具有同样的长度。 问有多少个整数符合W的形式并且比X大?

算法实战: 给定一个带通配符问号的数W,问号可以代表任意一个一位数字。 再给定一个整数X,和W具有同样的长度。 问有多少个整数符合W的形式并且比X大?...

给定一个固定长度的数组,将递增整数序列写入这个数组。当写到数组尾部时,返回数组开始重新写,并覆盖先前写过的数,请在这个特殊数组中找出给定的整数

转:http://bylijinnan.iteye.com/blog/1471461 public class SearchInShiftedArray { /** * 题目:...

两个无序数组分别叫A和B,长度分别是m和n,求中位数,要求时间复杂度O(m+n),空间复杂度O(1) 。

#include using namespace std; /*函数作用:取待排序序列中low、mid、high三个位置上数据,选取他们中间的那个数据作为枢轴*/ int median(int a...

任意长度的两个大数的乘法

方法(一):关于大数乘法,可以使用数组来模拟小学三年级的乘法竖式计算过程,代码如下:#include "iostream"#include "string"using namespace std;in...

打印输入的单词长度和各个字符出现频数的直方图(水平方向和垂直方向)

这事实上是K&R导言中练习1-13和1-14的问题,因为两个问题都涉及直方图,有些相似,所以都放在一起。相对来说自由发挥的余地比较大,不同的码者会写出不同形式的代码,下面只是我的解决方案。 #incl...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数的长度
举报原因:
原因补充:

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