蓝桥杯算法训练VIP-阶乘

2023-11-02

题目

题目链接

题解

思维。


既然它要取最后一个非零位,那么我们第一时间想到的肯定是取模,只用保留后几位就行了,但是保留后几位呢,对10的多少次方取模合适呢?
数据量是100,那么估算一下存在多少个零,能导致末尾零的出现无非就是乘以十的倍数或者最后一个非零位是2的数乘以最后一个非零位是5的数吧,这些情况大概会导致出现十个零以上啊,你说开longlong,十个零是只算十的倍数的情况,加上2 5的情况必然超longlong
因此,这里用了点小技巧,既然末尾出现零了,那么再乘以别的数末尾还是零,存下来也没意义,不如我们每次乘完一个数,就消去末尾全部的零,这样我们最后得到的数只要对十进行取模就是答案了。

代码

#include<bits/stdc++.h>
using namespace std;
const int MOD = 1e5; // 开1000也行,但是100不行

int n, ans = 1;

int main()
{
	cin>>n;
	for(int i = 1;i <= n;i ++) {
		ans = ans*i % MOD; // 乘法,取模
		while(ans%10 == 0) ans/=10; // 去掉尾部的0
	} 
	
	cout << ans % 10 << endl; // 取最后一位非零数
	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝桥杯算法训练VIP-阶乘 的相关文章

随机推荐

  • 『学Vue2+Vue3』指令补充、computed计算属性、watch侦听器

    day02 一 今日学习目标 1 指令补充 指令修饰符 v bind对样式增强的操作 v model应用于其他表单元素 2 computed计算属性 基础语法 计算属性vs方法 计算属性的完整写法 成绩案例 3 watch侦听器 基础写法
  • linux文件基础-2_linux文件细节_lseek_文件指针

    一 linux管理文件 1 硬盘中的静态文件和inode i节点 1 静态文件 放在硬盘中 固定的形式 2 硬盘的两大区域 1 硬盘内容管理表项和储存内容区域 2 操作系统先去访问硬盘内容管理表项 gt 扇区级别的信息 gt 得到储存内容区
  • SAP 货币类型和公司代码的货币设置

    货币类型分为公司代码和集团货币 一般FI 10类型和集团货币 30 事务代码是8KEM 设置货币类型的事务代码是OB22 在S 4 1809版本里编辑功能统合到事务代码FINSC LEDGER 中了 这里集中了分类账和公司代码的设置 设置多
  • 使用正确的命令重启WSL子系统

    问题 大家都知道一般Linux系统重启非常简单 但是在WSL子系统中执行以下两个重启命令是完全无效的 reboot shutdown r 执行命令后提示如下 System has not been booted with systemd a
  • JavaWeb——Servlet

    目录 一 JavaWeb 二 servlet本质 三 Servlet对象生命周期 四 Servlet类的方法介绍 五 适配器思想 一 JavaWeb 对于一个web应用来说 涉及到的角色和规范协议 二 servlet本质 可以将servle
  • Over-smoothing issue in graph neural network(GNN中的过平滑问题)

    在这里转载只是为了让不能够科学搜索的同学们看到好文章而已 个人无收益只是分享知识 顺手做个记录罢了 原网址 https towardsdatascience com over smoothing issue in graph neural
  • 2011.11.24

    完成了刚体 并基本上封装好了
  • 小程序文章详情界面id传送问题

    今天在做由文章列表跳转至文章详情界面时发现不能正常获取文章ID 控制台显示未定义 经过询问他人与搜索资料终于找到了问题所在之处 心累 可以看到这里显示id未定义 错误中学到了什么 大家在发现错误时 一定要善于用console log 来看一
  • 解决创建Vue项目出现template下方有红色波浪错误

    问题 在创建完vue项目后每个点开的文件只要有template或const等单词都会出现红色波浪线报错提示 虽然不影响项目运行 但是看着还是非常碍眼 将鼠标一上去会显示 No Babel config file detected for 路
  • Linux中top命令参数详解

    因为面试经常会问top命令用法 以及各个参数的含义 因此转载补充了了一下 以便自己学习 top命令经常用来监控linux的系统状况 是常用的性能分析工具 能够实时显示系统中各个进程的资源占用情况 top的使用方式 top d number
  • 小程序引入vant-Weapp保姆级教程及安装过程的问题解决

    小知识 大挑战 本文正在参与 程序员必备小知识 创作活动 本文同时参与 掘力星计划 赢取创作大礼包 挑战创作激励金 当你想在小程序里引入vant时 第一步 打开官方文档 第二步 切到快速上手 然后开始步骤一 步骤二 步骤三 你只会看到 以下
  • Awesome IoT

    本文来自 https github com HQarroum awesome iot 中文可以参考 https yq aliyun com articles 54793 Inspired by the awesome list thing
  • 基于BowyerWatson的Delaunay三角化算法实现

    实现效果如下图所示 代码 include
  • 【C++】 Qt-线程并发与线程同步

    文章目录 线程并发 线程同步 原子访问 InterLocked 关键段 Critical Section 也叫临界区 回顾单例出现的问题 关键段基本使用 封装关键段 Qt下的多线程 多线程与进度条 Qt QThread 线程并发 我们再创建
  • angular2下用http到由SpringMVC发布rest服务的服务器端拉取数据

    本文讲述如何使用angular2的http服务来去一台由SpringMVC发布的rest服务的服务器上拉取数据 我们现来上服务端代码 ResponseBody RequestMapping hero public Object getDat
  • linux服务器上前后端部署流程

    linux服务器上前后端部署流程 本文介绍如何在Linux上部署前段和后端的流程 以及遇见的bug Vue前端部署流程 首先 在服务器上 本文以华为云服务器为例 开启80端口 在服务器上下载nginx 更新apt源 sudo apt upd
  • Rust + Wasm 实现浏览器格式化 JSON

    本文代码 查看效果 依赖工具 cargo install wasm pack Cargo toml package name wasm bindgen record version 0 1 0 authors Li Lei
  • 如何解决段错误

    程序运行时崩溃应该是经常遇到的事情 本篇文中就来讲解一下在Linux下如何解决程序崩溃 也就是发生了段错误之后找到程序具体出错的地方 如果程序通过了编译 但是在使用命令 a out 运行时程序崩溃了 即显示 段错误 core dumped
  • Angular—目录

    开始Angular开发 Angular环境搭建 Angular开发准备 Angular页面搭建 Angular 路由 Angular 路由基础 Angular 路由数据传递 Angular 重定向路由 子路由 Angular 辅助路由 An
  • 蓝桥杯算法训练VIP-阶乘

    题目 题目链接 题解 思维 既然它要取最后一个非零位 那么我们第一时间想到的肯定是取模 只用保留后几位就行了 但是保留后几位呢 对10的多少次方取模合适呢 数据量是100 那么估算一下存在多少个零 能导致末尾零的出现无非就是乘以十的倍数或者