1133: 【C語言訓練】求1+2!+3!+...+N!的和
阿新 • • 發佈:2019-02-09
題目描述
求1+2!+3!+...+N!的和輸入
正整數N(N〈=20)
輸出
1+2!+3!+...+N!的和 (結果為整數形式)
樣例輸入
3
樣例輸出
9
提示
這道題目,看提交和通過率1/5吧,所以發出來了。
我覺得他們是不知道怎麼儲存20的階乘,因為這個資料是很大的,暫且不說還要累加。
由於OJ系統不同,要用lld%,但是我自身編譯器使用lld%,是有點問題的,但是在OJ上通過了。
<span style="font-size:18px;"> #include<stdio.h> //遞迴求階乘 unsigned long long facto(int n) { if (n == 1) return 1; else return n*facto(n - 1); } int main() { unsigned long long n; /* unsigned long long的最大值: 1844674407370955161 __int64的最大值:9223372036854775807 可以儲存 */ unsigned long long sum = 0; scanf("%lld", &n); for (int i = 1; i <= n; i ++) sum += facto(i); printf("%lld\n", sum); return 0; } </span>