阶乘之和

#include <stdio.h>
#include <math.h>
// 算法竞赛的目标是编程对任意输入均得到正确的结果。
// 请先独立完成,如果有困难可以翻阅本书代码仓库中的答案,但一定要再次独立完成。
// “抓住主要矛盾”——始终把学习、实验的焦点集中在最有趣的部分。如果直观地解决方案行得通,就不必追究其背后的原理。

/**
【题目】阶乘之和
输入n,计算S=1!+2!+3!+…+n!的末6位(不含前导0)。n≤10^6 ,n!表示
前n个正整数之积。
样例输入:
10
样例输出:
37913
*/


/**
【分析】双循环计算出和。再处理只显示后6位。
*/


int main()
{
    const int MOD = 1000000; // 定义常量增加可读性和可调节性
    int s = 0;
    int n;
    scanf("%d",&n);

    int i,j;
    for (i=1;i<=n;i++) {
        int factorial = 1;
        for (j=1;j<=i;j++) {
            factorial *= j;
        }
        s += factorial;
    }

    printf("%d
",s%MOD); // 小技巧,显示后六位

    return 0;
}




原文地址:https://www.cnblogs.com/jiqing9006/p/8514071.html