蓝桥杯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;
    }
}
相关推荐
闲猫11 小时前
Spring AI 对接Deepseek ChatModel 聊天对话
java·前端·spring
哥不想学算法11 小时前
【C++】字符串字面量拼接
开发语言·c++
gugucoding12 小时前
21. 【C语言】打包不同类型:结构体
c语言·开发语言
自信的未来12 小时前
JSON 工具|Web Worker 工程化打包 + 语法自动修复 + 多语言代码生成实战
java·前端·json
Brookty12 小时前
【JavaEE】线程安全(一).4:写块串行保安全、CAS
java·开发语言·java-ee·多线程·线程安全
怕孤单的草丛13 小时前
缓存管理面临的主要问题
java·数据库·缓存
F202269748613 小时前
西门子 PLC 与 C# 通信
开发语言·c#
gugucoding14 小时前
31. 【C语言】堆栈与队列的实现
c语言·开发语言·数据结构·链表
万联WANFLOW14 小时前
多分支企业组网,IP 网段到底该怎么规划
开发语言·php