輸入n,計算S = 1! + 2! + 3! + ... + n!,並只顯示末六位數字。

n <= 106,n!表示前n個正整數之積。

範例輸入:

10

 

範例輸出:

37913

 

解題與分析:

第一個for可計算出累加到n階,第二個for可求出每個n值得階乘結果,

最後只顯示六位%106即可。

 

範例程式碼如下:

#include <stdio.h>
int fact(int n);

int main(void)
{
    int n, s;
    scanf("%d", &n);
    s = fact(n);
    printf("%d", s % 1000000);
    
    return 0;
}

int fact(int n)
{
    int tmpSum;
    for(int i = 1; i <= n; i++)
    {
        int factorial = 1;
        for(int j = 1; j <= i; j++)
        {
            factorial *= j;
        }
        tmpSum += factorial;
    }
    return tmpSum;
}

 

arrow
arrow
    文章標籤
    階乘之和
    全站熱搜

    Will 發表在 痞客邦 留言(0) 人氣()