nyoj 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

斯特林公式:S=log10(2*PI*n)+n*log10(n/E)+1PI=3.1415926E=2.17828长知识了  斯特林公式求数的阶乘长度
#include<stdio.h>
#include<string.h>
#include<math.h>
#define PI 3.1415926
#define E 2.71828
#define LL long long
LL len(int n)
{
	LL s;
	return s=log10(2*PI*n)/2+n*log10(n/E)+1;
}
int main()
{
	int t,n,m,i,j;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		if(n<=3)
		printf("1\n");
		else
		printf("%lld\n",len(n));
	}
	return 0;
}

  

时间: 2024-08-06 11:00:35

nyoj 69 数的长度的相关文章

数的长度 NYOJ 69

1 #include<stdio.h>//数的长度(69) 2 #include<math.h> 3 int main() 4 { 5 int x,i,m; 6 double sum; 7 scanf("%d",&x); 8 while(x--){ 9 scanf("%d",&m); 10 sum=0; 11 for(i=1;i<=m;i++){ 12 sum=log10(i)+sum; 13 } 14 printf(&

数的长度

数的长度 时间限制: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 来源 ACM教程 上传者 r

nyoj69 数的长度

数的长度 时间限制: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 <span style

判断一个数中最大回文数的长度

判断一个数中最大回文数的长度 :例如12332112345654321中最大的回文数是12345654321,长度为11 public static void palindrome(String str) { int len = str.length(); int max = 1; for(int i = 1; i < len; i++){ int low = i-1; //偶数情况 int high = i; while(low >= 0 && high < len &

NYOJ 1085 数单词 (AC自动机模板题)

数单词 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 为了能够顺利通过英语四六级考试,现在大家每天早上都会早起读英语. LYH本来以为自己在6月份的考试中可以通过六级,可是没想到,成绩出来以后,居然没有通过.所以他不得不付出更多的时间来学习英语. 要想通过六级,最基本的要求就是词汇量.为了能够更快的记住一些陌生单词,LYH有时会找一些英语文章来读. 今天早上,LYH又找了一篇文章.读之前,他突然萌生出一个想法:文章中哪些单词出现的次数最多呢? 输入 第一行输入一个

常用数据类型对应字节数,int长度

常用数据类型对应字节数: 这两台机器,前者32位,后者64位,测试了以下数据类型的长度: 前者: int:4,long:4,long long:8 后者: int:4,long:8,long long:8 不是说int会变吗,为何变得是long? 还有如果要写个通用的程序,订死必须用4个或8个字节的数据类型,在不需要重新编码编译的前提下,该如何处理这种变化? 谢谢指教.. 2楼 发表于 2008-4-15 09:35 QUOTE: 原帖由 maxxfire 于 2008-4-15 09: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 /**************************************************

MVVM架构~knockoutjs系列之文本框数符长度动态统计功能

返回目录 这个功能为什么要写呢,因为在之前做了一个前端的页面效果,使用JS写的,感觉很累,真的,对于一个文本框长度动态统计,你要写blur,press,down什么的事件,太麻烦了,这时,我想到了knockoutjs,这东西好,为什么,是因为它够简单,够强大,这两点对于程序员来说,就是好! 先来看一下页面的效果 当字数达到某个值时,如10个字,这时文本框将不允许你再次输入,这使用了subscribe,而长度与文框关的关联使用了computed(dependentObservable依赖监视器也是

ACM--模拟--nyoj 559--报数游戏--湖南第七届省赛

南阳oj题目地址:传送门 报数游戏 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述     n 个人站成一行玩一个报数游戏.所有人从左到右编号为 1 到 n.游戏开始时,最左边的人报 1,他右边的人报 2,编号为 3 的人报 3,等等.当编号为 n 的人(即最右边的人)报完 n 之后,轮到他左边的人(即编号为n-1 的人)报 n+1,然后编号为 n-2 的人报 n+2,以此类推.当最左边的人再次报数之后,报数方向又变成从左到右,依次类推. 为了防止游戏太无聊,报数时