返回题解分享
讨论 / 题解分享/ 帖子详情

阶乘求和(结果填空) - 题解

题目要求后9位数字,直接运算会超出long类型限制,故可用模运算 即为当运算数字或者某数阶乘大于九位数字时取模1000000000。保证每次运算都在九位数以内即可得出答案。

public class Main {
    static long N = 1000000000;
    static long f(long x){
        if(x == 1)
            return 1;
        long ans = x * f(x - 1);
        if(ans > N){
            ans = ans % N;
        }
        return ans;
    }
    public static void main(String[] args) {
        long sum = 0;
        for (int i = 1; i <= 2023L ; i++) {
            sum += f(i);
            if(sum > N){
                sum = sum % N;
            }
        }
        System.out.println(sum);
    }
}
0 回复 0 转发 0 喜欢 3 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!