題目

解決代碼及點評
這道題和上一道題類似,第n個累加項 = n-1累加項的n倍
由于有這個規律,我們可以用一個for循環實作
但是例子代碼并沒有這麼做,大家可以回去修改下代碼,使得代碼更加有效率
這個代碼把n的階乘寫成了一個函數
/************************************************************************/
/*
5. 用循環語句編寫求 1到20的階乘的程式。
*/
/************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int f45(int num) // 實作階乘的函數
{
int sum=1;
if (num==0)
{
return sum;
}
for ( int i=1;i<=num;i++) // 使用for循環,累乘所有項
{
sum*=i;
}
return sum;
}
void main()
{
int totlesum=0;
for (int i=1;i<21;i++) // 21階乘累加
{
totlesum+=f45(i); // f45函數實作了i的階乘,每次累加傳回值
}
printf("和為:%d",totlesum );
system("pause");
}
代碼下載下傳及其運作
下載下傳解壓後用VS2013打開工程檔案
點選 “本地Windows調試器” 執行
程式運作結果