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;
}

最新文章

  1. Redis数据库
  2. XmlUtils.java
  3. 【算法和数据结构】_12_小算法_abs_fabsf_fabsd_大端小端判断
  4. Android 颜色Color(转)
  5. Wonderful Sentense
  6. UIDynamic仿物理引擎-浮动碰撞效果-b
  7. Android中你应该知道的设计模式
  8. java开发webservice的几种方式
  9. 深入理解Solaris内核中互斥锁(mutex)与条件变量(condvar)之协同工作原理
  10. toad执行存储过程
  11. MySQL IO线程及相关参数调优
  12. 【有意思的BUG】默认置灰的属性的值传递
  13. spring在扫描包中的注解类时出现Failed to read candidate component错误
  14. noip级别数论?
  15. SpringCloud 教程
  16. 修改云主机windows密码不生效
  17. redis的常用命令及实例讲解
  18. frp源码剖析-frp中的log模块
  19. spring注解预览
  20. Pycrypto与RSA密码技术笔记

热门文章

  1. java日期操作 大全
  2. English trip -- Review Unit1 Personal Information 个人信息
  3. hdoj4283 You Are the One
  4. codeforces 497c//Distributing Parts// Codeforces Round #283(Div. 1)
  5. oracle EBS grant 您不具有执行当前操作的足够权限。请与您的系统管理员联系。
  6. springboot activiti关闭验证自动部署
  7. 解决mac更新系统后git无法使用
  8. spring AOP自定义注解 实现日志管理
  9. java微信授权登录传参给redirect_uri 接口,回到原页面,传递多个参数
  10. Ionic构建打包apk出现的问题集合