輸入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;
}
文章標籤
全站熱搜
留言列表