1. 程式人生 > >經典問題程式C++實現,階乘的問題,1!+2!+3!+.....+20!。

經典問題程式C++實現,階乘的問題,1!+2!+3!+.....+20!。

程式碼程式:

#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