求阶乘的位数和后缀0个数
个数 后缀 位数 阶乘
2023-09-27 14:21:18 时间
结合两个公式,斯特林公式 和 后缀0个数
#include<stdio.h>
#include<string.h>
#include<cmath>
using namespace std;
const double PI=3.14159265;
// 斯特林公式, 求总位数
int striling(int n) {
double sum=(n*log(n) - n + 0.5*log(2*n*PI))/log(10)+1;
// printf("%d\n",(int)sum);
return int(sum);
}
// 后缀0个数
// https://leetcode-cn.com/problems/factorial-trailing-zeroes/solution/jie-cheng-hou-de-ling-by-leetcode/
int trailingZeroes(int n) {
int zeroCount = 0;
while (n > 0) {
n /= 5;
zeroCount += n;
}
return zeroCount;
}
int main()
{
int n;
while(scanf("%d", &n)==1)
{
int len=striling(n);
int zeros=trailingZeroes(n);
// printf("%d\n",zeros);
printf("%d\n",len-zeros);
}
}
两个相减,就是前缀部分
https://zh.wikipedia.org/wiki/%E6%96%AF%E7%89%B9%E9%9D%88%E5%85%AC%E5%BC%8F
https://leetcode-cn.com/problems/factorial-trailing-zeroes/solution/jie-cheng-hou-de-ling-by-leetcode/
相关文章
- C语言-6月8日-给定一个字符数组‘i am a student’ 统计字符a的个数并进行输出
- 【LeetCode】数字 1 的个数 [H](动态规划)
- N个数依次入栈,出栈顺序有多少种?
- 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
- LeetCode_数位枚举_困难_233.数字 1 的个数
- JAVA记录从键盘输入的正数和负数的个数(0结束)
- 浙大版《C语言程序设计(第3版)》题目集习题5-5 使用函数统计指定数字的个数 (15 分)
- LeetCode·面试题 17.09.第k个数·动态规划
- 计算字符个数
- 编程之美 2.1 求二进制数中1的个数
- 786. 第k个数
- ES按资源类型统计个数
- 农田个数
- 【Android 内存优化】使用 Memory Analyzer ( MAT ) 工具分析内存 ( MAT 工具使用 | 最大对象 | 类实例个数 | 引用与被引用 | GC Roots 最短链 )