【题解】p2388阶乘之乘
题解一堆\(O(n)\)算法真给我看傻了。
考虑\(10=2*5\),因子2肯定更多,所以计算因子5的个数即可。
从5到n这\(n-5+1\)个数的阶乘里面,都各自含有一个因子\(5=1*5\)。
从10到n这\(n-10+1\)个数的阶乘里面,都各自含有一个因子\(10=2*5\)。
故因子5的总个数为\((n-5+1)+(n-10+1)+...+(n \% 5+1)\)。
不难发现这是一个等差数列,首尾项如上,项数为\(n/5\)。
然而这样并不对,因为我们只考虑到了含有一个因子5的情况,但像\(25=5*5\)这样含有两个因子5的情况,我们还得重复计算。
因此,枚举我们要统计的因子i,并用上面等差数列的思想分别计算其个数,统计入答案即可。
值得注意的一点:由于前面在因子\(i=5\)的时候,我们已经将\(25=5*5\)中的一个因子5统计入答案。
因此当因子\(i=25\)的时候,只要统计剩余的一个因子5即可。
#include<cstdio>
#define ll long long
using namespace std;
int main()
{
// freopen("in.in","r",stdin);
int n;
scanf("%d",&n);
ll ans=0;
for(int i=5;i<=n;i*=5)
ans+=(ll)((n-i+1)+(n%i+1))*(n/i)/2;
printf("%lld\n",ans);
return 0;
}
【题解】p2388阶乘之乘的更多相关文章
- 洛谷——P2388 阶乘之乘
P2388 阶乘之乘 题目背景 不告诉你…… 题目描述 求出1!*2!*3!*4!*……*n!的末尾有几个零 输入输出格式 输入格式: n(n<=10^8) 输出格式: 有几个零 输入输出样例 ...
- P2388 阶乘之乘
首先感谢wxy学长之前告诉我这道题,结果今天竟然一眼切了,咕咕咕 题目链接: P2388 阶乘之乘 题目思路: 第一眼看到一定想到的是先求一下阶乘然后看最后又几个零,但是这样会TIL啊 想一下0是怎么 ...
- 洛谷 P2388 阶乘之乘 题解
本蒟蒻又来发题解了QwQ; 看到这个题目,本蒟蒻第一眼就想写打个暴力: 嗯,坏习惯: 但是,动动脑子想一想就知道,普通的的暴力是过不了的: 但是,身为蒟蒻的我,也想不出什么高级的数学方法来优化: 好, ...
- 题解 洛谷 P2388 阶乘之乘
目录 简要题意 题解 主要思路 一个 \(\omega(n)\) 的算法 一个 \(O(\log n)\) 的算法 一个算法 代码 算法 \(1\)(\(\omega(n)\)) 算法 \(2\) 算 ...
- 洛谷P2388 阶乘之乘
题目背景 不告诉你-- 题目描述 求出1!*2!*3!*4!*--*n!的末尾有几个零 输入输出格式 输入格式: n(n<=10^8) 输出格式: 有几个零 输入输出样例 输入样例#1: 复制 ...
- 【洛谷 P2388 阶乘之乘】模拟
分析 求因数5的个数 AC代码 #include<iostream> using namespace std; int main() { long long n,t,ans=0,s=0; ...
- 洛谷题解 P1134 【阶乘问题】
原题传送门 题目描述 也许你早就知道阶乘的含义,N阶乘是由1到N相乘而产生,如: 12!=1×2×3×4×5×6×7×8×9×10×11×12=479,001,600 12的阶乘最右边的非零位为6. ...
- 7.20试机测 T3 阶乘之和 暴力AC题解
7.20试机测 T3 阶乘之和 暴力AC题解 题外话:此乃本蒟蒻发表的第一篇题解,大家多多关照,支持一下,谢谢 题面 3.阶乘之和(sum.pas/in/out) 问题描述: 给定一个非负整数 n, ...
- 【题解笔记】PTA基础6-10:阶乘计算升级版
题目地址:https://pintia.cn/problem-sets/14/problems/742 前言 咱目前还只能说是个小白,写题解是为了后面自己能够回顾.如果有哪些写错的/能优化的地方,也请 ...
随机推荐
- css3中的skew(skewX,skewY)用法
这是html代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...
- 环境篇:CM+CDH6.3.2环境搭建(全网最全)
环境篇:CM+CDH6.3.2环境搭建(全网最全) 一 环境准备 1.1 三台虚拟机准备 Master( 32g内存 + 100g硬盘 + 4cpu + 每个cpu2核) 2台Slave( 12g内存 ...
- 实验四 Linux系统C语言开发环境学习
项目 内容 这个作业属于哪个课程 Linux系统与应用 这个作业的要求在哪里 作业要求链接 学号-姓名 17041428-朱槐健 作业学习目标 1.Linux系统下C语言开发环境搭建 2.学习Linu ...
- win32 socket http 操作
纯wininet 操作http关键代码如下: HINTERNET hNet = ::InternetOpen(_T("Test"), INTERNET_OPEN_TYPE_DIRE ...
- Flutter学习笔记(31)--异步更新UI
如需转载,请注明出处:Flutter学习笔记(31)--异步更新UI 大家都知道,子线程不能操作UI控件,在我们Android的日常开发中,经常会遇到网络请求数据通过线程间通信,将数据发送到UI线程中 ...
- [博主推荐]如何利用注册 的 bug 来疯狂注册,不停开小号"做"事情,支持 手机号&邮箱
[博主推荐]如何利用注册 的 bug 来疯狂注册,不停开小号"做"事情,支持 手机号&邮箱 非常简单 1.手机号注册: 用手机号注册 网站基本都支持 可以用推荐的网址: ...
- 列表、元组、字典和简单if语句【python实验1】
第一次实验报告: 学生姓名 总成绩 tom 90 jack 89 john 96 kate 86 peter 100 实验内容3-1 建立两个列表分别对学生的姓名和总成绩信息进行存储 name=['t ...
- 通信中的错误代码 (repost from https://blog.csdn.net/zzhuan_1/article/details/80066716)
• 100 - 继续.• 101 - 切换协议.• 110 重新启动标记答复.• 120 服务已就绪,在 nnn 分钟后开始.• 125 数据连接已打开,正在开始传输.• 150 文件状态正常,准备打 ...
- webpack介绍—上
6.1 webpack概念的引入 在网页中会引用哪些常见的静态资源? JS .js. .jsx ..coffee. .ts(TypeScript 类 C# 语言) CSS .css. .less. . ...
- Newtonsoft 六个超简单又实用的特性,值得一试 【上篇】
一:讲故事 看完官方文档,阅读了一些 Newtonsoft 源码,对它有了新的认识,先总结 六个超经典又实用的特性,同大家一起分享,废话不多说,快来一起看看吧~~~ 二:特性分析 1. 代码格式化 如 ...