蓝桥杯3500阶乘求和java

不要被题目的2023吓到,做这道题可以先观察一下前几个阶乘的值,这里我们看看前20个:

复制代码
1
2
6
24
120
720
5040
40320
362880
3628800
39916800
479001600
6227020800
87178291200
1307674368000
20922789888000
355687428096000
6402373705728000
121645100408832000
2432902008176640000

我们不难发现越到后面的数的阶乘,结尾的0就越多,而且每5个数后面的0会多一位,所以我们计算前45个就行(后来发现前40个就行,因为25贡献了两个因子 5),题目只需要求后9位,所以前面的不用管。

java 复制代码
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        long sum=0;
        for (int i=1;i<45;i++){
            sum+=jiecheng(i);
        }
        sum=sum%1000000000L;
        System.out.println(sum);
    }
    public static long jiecheng(long num){
        long sum=1;
        for (long i=num;i>1;i--){
            sum*=i;
            sum=sum%1000000000L;
        }
        return sum;
    }
}
相关推荐
HEJOO94 分钟前
深入理解 Java volatile 关键字:原理、用法与常见误区
java·开发语言·spring
曹牧4 分钟前
Java:no content to map due to end of input
java·开发语言
阿维的博客日记6 分钟前
Example 类全场景实战指南
java·mybatis
梦梦代码精12 分钟前
《回收租赁系统技术选型避坑指南:业务闭环与二开自由度详解》
开发语言·低代码·docker·开源·代码规范
两点王爷17 分钟前
SpringBoot 项目集成 GeoServer 源码,实现地图服务发布
java·spring boot·后端
隔窗听雨眠26 分钟前
记一次SQL Server数据库性能分析:从CPU100%到单配置修复的完整诊断
开发语言·数据库·php
David猪大卫30 分钟前
【C++修炼】智能指针使用及原理
开发语言·c++·经验分享·笔记·学习·考研·面试
charlie11451419131 分钟前
现代Qt开发之图像处理进阶:像素操作与格式转换
开发语言·图像处理·qt
李永奉39 分钟前
中科蓝讯SDK开发-BT893x 面条耳机连接vivo手机后连接APP端,最后手机端设置页面手动断开蓝牙连接,此时耳机端假断开
c语言·开发语言·嵌入式硬件·物联网·智能手机·电脑
Javatutouhouduan1 小时前
Java如何速通性能优化难题?
java·java面试·jvm调优·后端开发·java程序员·java八股文·java性能优化