蓝桥杯2023年第十四届省赛真题-阶乘求和

一、题目 

【问题描述】

令 S = 1 ! + 2 ! + 3 ! + . . . + 202320232023 ! S = 1! + 2! + 3! + ... + 202320232023!S=1!+2!+3!+...+202320232023!,求 S SS 的末尾 9 位数字。 提示:答案首位不为 0。

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分

二、思路

        我自己想的时候是直接去计算1~202320232023的阶乘,可是202320232023超过了int的范围,也超过了long的范围,于是查看了答案,目前有两种思路:

        1.法一

        我们可以看到从39的阶乘之后后9位的阶乘都是0,(这也是题目中为啥让我们算末尾9位数了,相当于不用加40,41,42...等的阶乘),转化为,求1~39的阶乘和。

各阶乘数
10!3628800
20!2432902008176640000
30!                                           265252859812191058636308 480000000
...
39!                20397882081197443358640281739902897356 800000000
40!              815915283247897734345611269596115894272 000000000
41!         33452526613163807108170062053440751665152 000000000
42!      1405006117752879898543142606244511569936384 000000000
43!    60415263063373835637355132068513997507264512 000000000
44!2658271574788448768043625811014615890319638528 000000000

        但我们也不是单纯的算1~39的阶乘,因为计算的过程中数将会非常的大,我们在每次算到某个数的阶乘时把它对 模运算9 得到后9位数字 ,同时,把这个数加到阶乘和 里的时候也要 模9,最终直接输出即可。

package lan2023;public class A阶乘求和 {public static void main(String[] args) {long s = 0;long j = 1;for(int i = 1; i <= 39; i++) {j = j * i % (long)1e9; s = s + j;s = s % (long)1e9;}System.out.println(s);}
}

运行结果: 420940313

二、法二:

        因为这个题涉及到阶乘 甚至要 求和,我们此时可以使用BigInteger类 ,

创建BigInteger类:

以字符串的形式:BigInteger sum = new BigInteger("0");

以long型数据:BigInteger sum = BigInteger.valueOf(0);

方法:

加 a.add(b)

减 a.subtract(b)

乘 a.multiply(b)

除 a.divide(b)

比较大小 a.compareTo(b)

package lan2023;import java.math.BigInteger;public class A阶乘求和 {public static void main(String[] args) {	BigInteger sum = BigInteger.valueOf(0);BigInteger j = BigInteger.valueOf(1);for(int i = 1; i <= 39; i++) {j = j.multiply(BigInteger.valueOf(i));sum = sum.add(j);}System.out.println(sum);//最后记得取后9位}
}

使用 大数(BigInteger) 时也没什么不同,就是不管啥时候要使用他的方法,运算的时候 两个数都要是大数 注意: 将一个整数a转化位大数 BigInteger.valueOf(a)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/761675.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【UE5】动画蒙太奇简述

项目资源文末百度网盘自取 动画蒙太奇基本功能 动画蒙太奇&#xff08;Animation Montage&#xff09; 可以将多个 动画序列&#xff08;Animation Sequences&#xff09; 合并为单个资产并通过蓝图播放&#xff0c;还可以将一个蒙太奇动画切分为多个 蒙太奇分段&#xff08;M…

六大排序精解

排序概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。稳定性&#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&#xff0c;若经过排序&#x…

app上传图片和视频

推荐一个插件&#xff1a;上传图片、视频 包括预览、压缩、手动上传、uniCloud上传 等功能 - DCloud 插件市场 基础代码&#xff1a;一句话解决直接上代码&#xff01;&#xff01;&#xff01; <template><view class"modify-page"><u-navbar titl…

安装nginx和PHP

首先规划四台虚拟机&#xff0c;之前的主从数据库已经两台&#xff0c;其余两台&#xff0c;一个设置nginx&#xff0c;一个是php 首先NGINX的概念&#xff0c;请参考https://blog.csdn.net/hyfsbxg/article/details/122322125。正向代理&#xff0c;反向代理&#xff0c;可以…

【每日八股】Java基础经典面试题4

前言&#xff1a;哈喽大家好&#xff0c;我是黑洞晓威&#xff0c;25届毕业生&#xff0c;正在为即将到来的秋招做准备。本篇将记录学习过程中经常出现的知识点以及自己学习薄弱的地方进行总结&#x1f970;。 本篇文章记录的Java基础面试题&#xff0c;如果你也在复习的话不妨…

【独立版】海之心陪诊系统-陪诊陪护小程序-V3.0

商品介绍 陪诊这个词在近两年才出现在人们的视野中&#xff0c;随着人口老龄化&#xff0c;社会信息化。我们的父母很多不会操作信息化的系统&#xff0c;以至于在手机上挂号和线下取号取报告比较困难&#xff0c;年轻人需要工作时间有限&#xff0c;陪诊需求因此而来。 陪诊…

Introduction to Data Mining 数据挖掘

Why Data Mining? • The Explosive Growth of Data: from terabytes to petabytes — Data collection and data availability ◦ Automated data collection tools, database systems, Web, computerized society — Major sources of abundant data ◦ Business: Web, e-co…

Python爬虫实战:爬取太平洋网络相机文章

引言 本文介绍了使用Python编写的爬虫程序&#xff0c;通过爬取太平洋网络上的相机文章&#xff0c;获取相关信息并展示结果。文章详细介绍了爬虫程序的实现过程&#xff0c;包括使用Selenium模拟浏览器操作、使用BeautifulSoup解析网页内容等。通过阅读本文&#xff0c;可以了…

vue3 + ts +element-plus + vue-router + scss + axios搭建项目

本地环境&#xff1a; node版本&#xff1a;20.10.0 目录 一、搭建环境 二、创建项目 三、修改页面 四、封装路由vue-router 五、element-plus 六、安装scss 七、封装axios 一、搭建环境 1、安装vue脚手架 npm i -g vue/cli 2、查看脚手架版本 vue -V3、切换路径到需…

.NET封装一个简单的单例模式异步的日志类

.NET兼职社区 可以直接使用&#xff0c;防止重复造轮子。 using System.IO; using System; using System.Threading.Tasks;namespace Wpf.PersonnelNotice.Servers {public sealed class LogService{private static readonly Lazy<LogService> lazy new Lazy<LogServ…

flask+ flask_socketio HTTP/1.1“ 400 公网IP 问题解决方案

很经典的一个跨域问题 在服务端改成socketio SocketIO(app, cors_allowed_origins"*")就可以了

数据可视化-ECharts Html项目实战(4)

在之前的文章中&#xff0c;我们学习了如何创建圆环图、嵌套圆环图、蓝丁格尔玫瑰图。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢。 数据可视化-ECharts Htm…

四、C语言中的数组:如何输入与输出二维数组(数组,完)

本章的学习内容如下 四、C语言中的数组&#xff1a;数组的创建与初始化四、C语言中的数组&#xff1a;数组的输入与元素个数C语言—第6次作业—十道代码题掌握一维数组四、C语言中的数组&#xff1a;二维数组 1.二维数组的输入与输出 当我们输入一维数组时需要一个循环来遍历…

uniApp中使用小程序XR-Frame创建3D场景(1)环境搭建

1.XR-Frame简介 XR-Frame作为微信小程序官方推出的3D框架&#xff0c;是目前所有小程序平台中3D效果最好的一个&#xff0c;由于其本身针对微信小程序做了优化&#xff0c;在性能方面比其他第三方库都要高很多。 2.与Three.js的区别 做3D小程序的同学们对Three.js一定不陌生…

huggingface_hub

文章目录 一、关于 huggingface_hub二、安装三、快速入门指南1、下载文件1.1 下载单个文件 hf_hub_download1.2 下载整个库 snapshot_download 2、登录3、创建一个存储库 create_repo4、上传文件4.1 上传单个文件 upload_file4.2 上传整个存储库 upload_folder 四、集成到 Hub …

图论06-飞地的数量(Java)

6.飞地的数量 题目描述 给你一个大小为 m x n 的二进制矩阵 grid &#xff0c;其中 0 表示一个海洋单元格、1 表示一个陆地单元格。 一次 移动 是指从一个陆地单元格走到另一个相邻&#xff08;上、下、左、右&#xff09;的陆地单元格或跨过 grid 的边界。 返回网格中 无法…

【PyCaret】使用PyCaret创建机器学习Pipeline进行多分类任务

发现一个好东西&#xff0c;PyCaret机器学习Pipeline&#xff0c;记录一下用其进行多分类任务的使用方法。 1、简介 PyCaret是一个开源的、不用写很多代码的Python机器学习库&#xff0c;可以自动化机器学习工作流程&#xff0c;是一个端到端的机器学习和模型管理工具&#xff…

登录与注册功能(简单版)(3)登录时使用Cookie增加记住我功能

目录 1、实现分析 2、步骤 1&#xff09;新建login.jsp 2&#xff09;修改LoginServlet&#xff1a; 3&#xff09;启动访问&#xff1a; 3、安全性考虑 4、最佳实践思路 1&#xff09;选择安全的认证机制 2&#xff09;强化会话管理 3&#xff09;安全地存储用户凭证…

Android App 如何 隐藏 HTTPS 请求,不让Charles 可以抓到数据,请求不可见?

使用SSL Pinning&#xff1a; 实现SSL Pinning来确保应用只与预期的服务器通信。这样&#xff0c;即使抓包工具可以拦截HTTPS请求&#xff0c;但由于证书不匹配&#xff0c;无法解密通信内容。 加密请求内容&#xff1a; 在应用中使用加密算法对请求内容进行加密处理&#xff…

Unity 粒子在UI中使用时需要注意的地方

最近项目中要在UI中挂载粒子特效,美术给过来的粒子直接放到UI中会有一些问题,查询一些资料后,总结了一下 一: 粒子的大小发生变化,与在预制件编辑中设计的大小不同 在预制件编辑模式下,大小正常 实际使用的时候特别大或者特别小 经过检查,发现预制件编辑模式下,默认画布的Rend…