經典問題程式C++實現,階乘的問題,1!+2!+3!+.....+20!。
阿新 • • 發佈:2019-01-30
程式碼程式:
#include <iostream> using namespace std; int main() { long n = 1;//為什麼要用long呢,因為計算階乘時結果會超出int的數值範圍。 long s = 0; for (int i = 1; i<=20; i++) { n *= i;//階乘運算 s += n;//值相加 cout << "當i為:" << i << "時" << "階乘值為:" << n << endl; cout << "當i為:" << i << "時" << "階乘值相加為:" << s << endl; } return 0; }
結果 當i為:1時階乘值為:1 當i為:1時階乘值相加為:1 當i為:2時階乘值為:2 當i為:2時階乘值相加為:3 當i為:3時階乘值為:6 當i為:3時階乘值相加為:9 當i為:4時階乘值為:24 當i為:4時階乘值相加為:33 當i為:5時階乘值為:120 當i為:5時階乘值相加為:153 當i為:6時階乘值為:720 當i為:6時階乘值相加為:873 當i為:7時階乘值為:5040 當i為:7時階乘值相加為:5913 當i為:8時階乘值為:40320 當i為:8時階乘值相加為:46233 當i為:9時階乘值為:362880 當i為:9時階乘值相加為:409113 當i為:10時階乘值為:3628800 當i為:10時階乘值相加為:4037913 當i為:11時階乘值為:39916800 當i為:11時階乘值相加為:43954713 當i為:12時階乘值為:479001600 當i為:12時階乘值相加為:522956313 當i為:13時階乘值為:6227020800 當i為:13時階乘值相加為:6749977113 當i為:14時階乘值為:87178291200 當i為:14時階乘值相加為:93928268313 當i為:15時階乘值為:1307674368000 當i為:15時階乘值相加為:1401602636313 當i為:16時階乘值為:20922789888000 當i為:16時階乘值相加為:22324392524313 當i為:17時階乘值為:355687428096000 當i為:17時階乘值相加為:378011820620313 當i為:18時階乘值為:6402373705728000 當i為:18時階乘值相加為:6780385526348313 當i為:19時階乘值為:121645100408832000 當i為:19時階乘值相加為:128425485935180313 當i為:20時階乘值為:2432902008176640000 當i為:20時階乘值相加為:2561327494111820313