HPU 1166: 阶乘问题(一)
2024-09-10 18:13:00
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;
}
最新文章
- Redis数据库
- XmlUtils.java
- 【算法和数据结构】_12_小算法_abs_fabsf_fabsd_大端小端判断
- Android 颜色Color(转)
- Wonderful Sentense
- UIDynamic仿物理引擎-浮动碰撞效果-b
- Android中你应该知道的设计模式
- java开发webservice的几种方式
- 深入理解Solaris内核中互斥锁(mutex)与条件变量(condvar)之协同工作原理
- toad执行存储过程
- MySQL IO线程及相关参数调优
- 【有意思的BUG】默认置灰的属性的值传递
- spring在扫描包中的注解类时出现Failed to read candidate component错误
- noip级别数论?
- SpringCloud 教程
- 修改云主机windows密码不生效
- redis的常用命令及实例讲解
- frp源码剖析-frp中的log模块
- spring注解预览
- Pycrypto与RSA密码技术笔记
热门文章
- java日期操作 大全
- English trip -- Review Unit1 Personal Information 个人信息
- hdoj4283 You Are the One
- codeforces 497c//Distributing Parts// Codeforces Round #283(Div. 1)
- oracle EBS grant 您不具有执行当前操作的足够权限。请与您的系统管理员联系。
- springboot activiti关闭验证自动部署
- 解决mac更新系统后git无法使用
- spring AOP自定义注解 实现日志管理
- java微信授权登录传参给redirect_uri 接口,回到原页面,传递多个参数
- Ionic构建打包apk出现的问题集合