蓝桥杯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;
    }
}
相关推荐
Legendary_0086 小时前
解析 PD Sink 与 LDR6500U:Type-C 取电的核心密码
c语言·开发语言
冴羽yayujs6 小时前
JavaScript 9 个先有库再有 API 的故事
开发语言·javascript·ecmascript
回忆2012初秋6 小时前
.NET 8.0 实战:基于 MQTTnet 封装高可用的 MQTT 发布/订阅工具类
开发语言·mqtt·.net
阿Y加油吧6 小时前
两道位运算 / 摩尔投票经典题复盘:只出现一次的数字 & 多数元素
数据结构·算法·leetcode
油丶酸萝卜别吃6 小时前
JavaScript 深度合并函数 deepMerge 实现指南(附完整测试用例)
开发语言·javascript·测试用例
念恒123066 小时前
Python(for循环进阶)
开发语言·python
YOU OU6 小时前
SpringBoot 配置文件
java·spring boot·后端
c++之路6 小时前
观察者模式(Observer Pattern)
java·网络·观察者模式
Dicky-_-zhang6 小时前
云原生存储与数据库选型实战:从传统数据库到云原生数据库的演进
java·jvm
凝小飞6 小时前
cucumber JAVA 一键部署指南
java·集成测试·模块测试