nyoj 数的长度
2024-10-11 02:55:05
描述
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 <iostream>
#include <cmath>
using namespace std;int main()
{
int n;
cin>>n;
while(n--)
{
int N;
cin>>N;
double sum=0;
for(int i=1;i<=N;i++)
sum+=log10(i);
cout<<(int)sum+1<<endl;
}
return 0;
}n!,<=10^m;
两边同时取对数,m=log10(n!),m=位数+1;
最新文章
- beego上传文件
- sublime和python--path
- 【BZOJ-1068】压缩 区间DP
- JSP公用COMMON文件
- Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)
- CodeForces 686B-Little Robber Girl&#39;s Zoo
- (转)Android中的Shape使用总结
- android开发之路03
- [置顶] 项目进阶 之 持续构建环境搭建(二)Nexus私服器
- openwrt默认不开启wifi
- UE4 Hello World 创建第一个UE4工程
- Apache Kafka简介与安装(二)
- 第一周博客之二---OA项目环境搭建及开发包部署
- eclipse maven设置
- PHP钩子的简单介绍
- 虚拟机压力测试延迟高的可能原因及 ILPIP 配置 / 查询脚本
- 一些Android的博客,没事翻翻
- 用c写一个小的聊天室程序
- vue-transition-move
- Android程序始终横屏