当前位置: 首页 > news >正文

P1134 阶乘问题【洛谷算法习题】

P1134 阶乘问题

网页链接

P1134 阶乘问题

题目描述

也许你早就知道阶乘的含义,N NN阶乘是由1 11N NN相乘而产生,如:

12 ! = 1 × 2 × 3 × 4 × 5 × 6 × 7 × 8 × 9 × 10 × 11 × 12 = 479,001,600 12!=1\times 2\times 3\times 4\times 5\times 6\times 7\times 8\times 9\times 10\times 11\times 12=479{,}001{,}60012!=1×2×3×4×5×6×7×8×9×10×11×12=479,001,600

12 1212的阶乘最右边的非零位为6 66

写一个程序,计算N ( 1 ≤ N ≤ 5 × 10 7 ) N\ (1\le N\le5\times 10^7)N(1N5×107)阶乘的最右边的非零位的值。

注意10,000,000 ! 10{,}000{,}000!10,000,000!的末尾有2499999 24999992499999个零。

输入格式

仅一行包含一个正整数N NN

输出格式

一个整数,表示最右边的非零位的值。

输入输出样例 #1

输入 #1

12

输出 #1

6

说明/提示

USACO Training Section 3.2

解题思路

本题核心是因子抵消+模运算+周期规律求解阶乘最后非零位,适配超大范围数据计算。阶乘末尾的0由因子2和5相乘产生,因此先等量抵消2和5消除末尾0;由于仅需最后一位非零数字,计算全程对10取模,彻底避免大数溢出。利用2的幂次周期规律(2、4、8、6循环),迭代处理n/5的部分,遍历个位数时跳过数字5,结合周期数组快速计算剩余因子的乘积。算法时间复杂度为O(log₅N),无任何大数运算,极致高效,完美适配N≤5×10⁷的超大规模数据。

总结

核心逻辑:抵消阶乘中的2和5因子消除末尾0,仅保留并计算最后一位非零数字。
关键操作:迭代拆分数字、抵消因子、模10防溢出,利用2的周期规律快速求解。
效率保障:对数级时间复杂度,无冗余计算,轻松处理题目最大数据规模。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefvector<vector<ll>>vt;typedefpair<ll,ll>pll;constll N=1e5+10;constll p=1e9+7;constll INF=1e18;constll M=2e3+10;ll a[4]={6,8,4,2};intmain(){ll n;cin>>n;ll ans=1;while(n>1){for(ll i=1;i<=n%10;i++){if(i!=5)ans=ans*i%10;}n=n/5;ans=ans*a[n%4]%10;}cout<<ans<<endl;return0;}
http://www.cnnetsun.cn/news/1803680.html

相关文章:

  • 电驱端盖锁付反力路径不稳致曲线异常?砺星如何控姿态
  • 论文图表自由!Paperxie AI 科研绘图:从零基础到顶刊级,一键搞定所有学术绘图需求
  • 跨境电商研发团队文件外发安全管控
  • 终极命令行工具:如何用BaiduPCS-Go高效管理百度网盘文件
  • 别再只盯着遗传算法了:一文搞懂进化算法家族(遗传/进化策略/进化编程/GEP)的区别与选择
  • GLM-. 全面支持与 Gemini CLI 集成:HagiCode 的多模型进化之路套
  • 推荐学哪个RPA工具?怎么入门、练手、考证?
  • 【AI原生开发范式革命指南】:20年架构师亲授从Spring Boot到LLM-Ops的5大跃迁路径
  • 硬件工程师常用网站
  • 顶级开发团队设计的Harness工程项目源码什么样
  • 如何突破Cursor Pro限制?3个技术方案让你免费享受AI编程助手
  • G-Helper终极指南:简单三步彻底优化你的华硕笔记本性能
  • VLA分布式协同中枢:Deepoc开发板激活采摘机器人集群智能
  • Bitfocus Companion:如何用开源软件将普通控制器变身专业控制台?
  • 跨境电商小帮手:OpenClaw+千问3.5-27B自动回复商品咨询
  • Win11系统虚拟化性能优化指南:VBS关闭与配置全解析
  • 最新版某货app bypassFrida检测
  • 从零开始掌握数据同化与集合卡尔曼滤波:9个交互式教程带你快速入门
  • 三分钟拯救你的B站缓存:零转码无损转换技术完全指南
  • 5分钟搞定Realtek 8192FU无线网卡:Linux驱动终极安装指南
  • 【数据结构】环形队列(循环队列)实战:从原理到C语言高效实现
  • lerobot so101机械臂锁死紧急救援!删除校准文件三步重生术
  • Arduino MQTT客户端终极指南:3步实现物联网设备快速联网
  • Multisim 12仿真避坑指南:搭建直流稳压电源时这5个参数千万别设错
  • 别让AI代码,变成明天的技术债吹
  • PyTorch 2.8模型部署实战:使用TorchServe构建高可用推理服务
  • GESPC++三级考试语法知识---位运算历年真题
  • 百考通:AI精准赋能,打破传统学术写作的壁垒
  • 【AI原生研发工具链2026权威选型白皮书】:覆盖LLM编排、智能测试、语义CI/CD与Agent化运维的7大维度实测对比
  • 国产操作系统SSD的工程权衡:四款热门型号横向测评(含湖南天硕技术拆解)