1166: 阶乘问题(一) [数学]

时间限制: 1 Sec 内存限制: 128 MB

提交: 58 解决: 24 统计

题目描述

小H对阶乘!很感兴趣。现在他想知道N!N!的位数,由于NN太大了,所以请了你这个BestCoder来帮忙。

输入

第一行输入一个整数TT,代表有TT组测试数据。

每组数据输入一个整数NN。

注:1<=T<=10,1<=N<=2∗1061<=T<=10,1<=N<=2∗106。

输出

对每组数据,输出N!N!的位数。

样例输入

2
100
1000

样例输出

158
2568

方法一:利用斯特林公式   

#include<cstdio>
#include<cmath>
#include<iostream>
#include<algorithm>
#define Pi acos(-1)
#define e exp(double(1))
using namespace std;
int main()
{
int t,n,sum;
cin>>t;
while(t--)
{
cin>>n;
sum=floor(log10(sqrt(2*Pi*n))+n*log10(n/e))+1;
//floor()向下取整。即取不大于x的最大整数
if(n==1) sum=1;
cout<<sum<<endl;
}
return 0;
}

方法二:无视公式,暴力

log10(n!)log10(n!) 
=log10(1∗2∗3…∗n)=log10(1∗2∗3…∗n) 
=log10(1)+log10(2)+…+log10(n)

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

HPU 1166: 阶乘问题(一)的更多相关文章

  1. HPU 第三次积分赛:阶乘之和(水题)

    阶乘之和 描述 对于整数pp,给出以下定义 p=x_{1}!+x_{2}!+x_{3}!+...+x_{q}!(x_{i}<x_{j}for\ all\ i<j )p=x1​!+x2​!+ ...

  2. C语言 · 阶乘计算 · 基础练习

    问题描述 输入一个正整数n,输出n!的值. 其中n!=1*2*3*-*n. 算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法.使用一个数组A来表示一个大整数a,A[0]表 ...

  3. Java 计算N阶乘末尾0的个数-LeetCode 172 Factorial Trailing Zeroes

    题目 Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in ...

  4. 关于for循环的几个小练习,例如奇数偶数,阶乘,求和等

    1 .100以内的奇数和偶数 var js = ""; var os = ""; for(var i=1;i<101;i++) { if(i%2 == 0 ...

  5. [LeetCode] Factorial Trailing Zeroes 求阶乘末尾零的个数

    Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in log ...

  6. 求单链表L各结点的阶乘之和(c语言)

    链表需要用到指针 阶乘需要用到递归 链表中的注意事项: 1.链表L是否等于NULL ----------是循环结束的条件 2.链表L->Data ---------取链表L中各个结点的值 3.L ...

  7. 洛谷 P2726 阶乘 Factorials Label:Water

    题目背景 N的阶乘写作N!,表示小于等于N的所有正整数的乘积. 题目描述 阶乘会变大得很快,如13!就必须用32位整数类型来存储,到了70!即使用浮点数也存不下了. 你的任务是找到阶乘最前面的非零位. ...

  8. js实现阶乘

    //while循环实现function calNum(n) { var product = 1; while(n > 1){//1*5*4*3*2,1*n*(n-1)*(n-2)*...*2 p ...

  9. 洛谷P1134 阶乘问题[数论]

    题目描述 也许你早就知道阶乘的含义,N阶乘是由1到N相乘而产生,如: 12! = 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 = 479,001, ...

随机推荐

  1. 常用 对象检测 api

    isPrototypeOf()    判断某个 proptotype 对象和某个实例之间的关系 alert(Cat.prototype.isPrototypeOf(cat1)); //true ale ...

  2. php 四种基础排序

    1. 冒泡排序算法 *     思路分析:法如其名,就是像冒泡一样,每次从数组当中 冒一个最大的数出来.  *     比如:2,4,1    // 第一次 冒出的泡是4  *             ...

  3. OpenGL入门程序一:绘制简单的矩形

    #include <GL/glut.h> void MyDisplay(void); int main(int argc, char **argv) { //设置窗口的大小 glutIni ...

  4. Maven常用dependency记录

    1.servlet配置 <dependency> <groupId>junit</groupId> <artifactId>junit</arti ...

  5. 测试工作中经常用到的一丢Linux命令

    自己平时测试工作中经常要在Linux下搭建测试环境,有涉及到启动/终止服务器,修改tomcat配置文件,偶尔碰到端口被占用... 这时就不得不需要一些基本的Linux命令来处理遇到的这些问题 1.cd ...

  6. 测序中Q20 Q30 Q40

    你能给别人讲清楚这个概念吗? 二代测序中,每测一个碱基会给出一个相应的质量值,这个质量值是衡量测序准确度的.碱基的质量值13,错误率为5%,20的错误率为1%,30的错误率为0.1%.行业中Q20与Q ...

  7. English trip -- VC(情景课)9 B Outside chores 室外家务

    Vocabulary focus 核心词汇 cutting the grass 修剪草坪 getting the mail  收到邮件 taking out the trash  把垃圾带出去 wal ...

  8. 12月7日,几个错误,拼写错误,遗漏符号:,记忆有误,max-width的作用。gem mini_magick, simple_form

    ❌: 1. /Users/chentianwei/jdstore3/jdstore/config/routes.rb:6:in `block in <top (required)>': u ...

  9. 1月4日编程基础hash

    早上git加星了webapp的教程 > h = Hash.new('Go Fishing')       => {}  // 创建一个空hash,设定"Go Fishing&qu ...

  10. 富文本编辑器layedit,调用setContent方法会报错

    需要把layedit.js里的setContent 函数的 layedit.sync(index)); 改成 this.sync(index));